- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
we're using ipp for blurring arbitrary float data fields. The problem we encounter is that if there are NAN values inside the source data field, the result is a data field with only NAN values. Can anyone explain why this happens when applying a simple box filter ? As far as I understand it, the filter is not applied incrementally, so the worst that should happen is that the "border values" become NAN.
The code looks as follows :
[cpp]void blur(float* data, int width, int height, int radius)
{
if(radius < 1 || data == 0)
return;
// first make sure we have an image big enough for our filter operation
unsigned int radius2 = radius*2;
float* tmpData = new float[(width+radius2)*(height+radius2)];
IppiSize srcRoi = { width, height };
IppiSize dstRoi = { width+radius2, height+radius2 };
IppStatus result;
result = ippiCopyReplicateBorder_32f_C3R( data, width*3*4, srcRoi, tmpData, (width+radius2)*3*4, dstRoi, radius, radius );
int offset = ((width+radius2)*radius + radius);
IppiSize mask = { radius2+1, radius2+1 };
IppiPoint anchor = { radius, radius };
result = ippiFilterBox_32f_C3R( tmpData+offset*3, (width+radius2)*3*4, data, width*3*4, srcRoi, mask, anchor );
delete [] tmpData;
}
[/cpp]
Help is greatly appreciated :-)
ALex
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Example Data :
[cpp]Source Data: nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 87.00 87.00 87.00 0.00 0.00 84.00 84.00 84.00 85.00 85.00 87.00 88.00 90.00 92.00 92.00 87.00 87.00 88.00 90.00 91.00 94.00 95.00 97.00 98.00 100.00 101.00 101.00 100.00 100.00 101.00 102.00 102.00 102.00 102.00 102.00 101.00 102.00 102.00 102.00 100.00 100.00 101.00 102.00 102.00 102.00 102.00 102.00 101.00 102.00 102.00 102.00 Result Data: nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan [/cpp]
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page