- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is my first application using the ippiResizeSqrPixel function and I'm have problems with it.
Test Condtions - XP32, VS2008, IPP6.1. Source Image is in RGB0 format and image is 6750 pixels wide by 1200 pixels high. When called imageSizeinBytes = 32,400,000. The image is to be resized to 1677 pixels wide by 298 pixels high.
To make things simple, I thought I would try to resize a simple image of a single color - "0xF6F7F800". What I'm getting back after resampling is "F7F80000", but on some I do get the correct value. Just to make things clear (for myself), when I look at the source image "0xF6F7F800", the stored bytes are: byte[0] = 00, byte[1] = 0xF8, byte[2] = F7, byte[3] = 0xF6; then repeats for rest of image.
Suggestions?
[cpp]SendCurrentImage( int pixelWidth, int pixelHeight, int imageSizeInBytes, const char* image ) { const int sizeOfBufferWindow = 2000000; int pixels = sizeOfBufferWindow/4; double shapeRatio = (double) pixelWidth / (double) pixelHeight; int newWidth = (int) sqrt((double)pixels * shapeRatio); int newHieght = pixels / newWidth; double scale = (double) newWidth / (double) pixelWidth ; scale = min(1.0, scale); IppiRect sourceRoi = {0, 0, pixelWidth, pixelHeight}; IppiRect destRoi = {0, 0, newWidth, newHieght}; int bufSize; // calc required size of working buffer ippiResizeGetBufSize( sourceRoi, destRoi, 4, IPPI_INTER_CUBIC, &bufSize ); Ipp8u* workingbuff = ippsMalloc_8u( bufSize); Ipp8u* destImageBuffer = reinterpret_cast( &_pData->imageToGui.rawImage[0]); IppiSize sourceImageSize; sourceImageSize.height = pixelHeight; sourceImageSize.width = pixelWidth; IppStatus status = ippiResizeSqrPixel_8u_AC4R(reinterpret_cast (image), sourceImageSize, pixelWidth * 4, sourceRoi, destImageBuffer, newWidth * 4, destRoi ,scale, scale, 0.0, 0.0, IPPI_INTER_CUBIC, workingbuff); ippsFree( workingbuff);[/cpp]
Test Condtions - XP32, VS2008, IPP6.1. Source Image is in RGB0 format and image is 6750 pixels wide by 1200 pixels high. When called imageSizeinBytes = 32,400,000. The image is to be resized to 1677 pixels wide by 298 pixels high.
To make things simple, I thought I would try to resize a simple image of a single color - "0xF6F7F800". What I'm getting back after resampling is "F7F80000", but on some I do get the correct value. Just to make things clear (for myself), when I look at the source image "0xF6F7F800", the stored bytes are: byte[0] = 00, byte[1] = 0xF8, byte[2] = F7, byte[3] = 0xF6; then repeats for rest of image.
Suggestions?
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Found my problem. I was using ippiResizeSqrPixel_8u_AC4R when I should have been using ippiResizeSqrPixel_8u_C4R.
Sorry to have bothered anyone.
Tom
Sorry to have bothered anyone.
Tom
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