Xcode resize函数返回OSX Mavericks 64位opencv 2.4.7上移位的图像列
我在OSX Mavericks 64位上使用OpenCV 2.4.7 我使用mac端口安装了OpenCV “sudo端口安装opencv” 我将搜索路径头和库(分别)指向 /选择/本地/包括 /opt/local/lib 在构建阶段:我已将以下内容添加到“将二进制文件链接到库”部分: libopencv_imgproc.2.4.7.dylib libopencv_core.2.4.7.dylib 在Xcode 5中构建,没有问题 我遇到了OpenCV的调整大小功能的问题。我测试了一个场景,其中dst图像与src图像具有相同的宽度和高度。因此,基本上尺寸没有改变,返回的图像与预期一样 Image@ 但是,当我将图像的宽度增加一倍时,像素列会发生移动(如隔行扫描/重影效果) Image@ 我的目标C功能如下:Xcode resize函数返回OSX Mavericks 64位opencv 2.4.7上移位的图像列,xcode,macos,cocoa,opencv,osx-mavericks,Xcode,Macos,Cocoa,Opencv,Osx Mavericks,我在OSX Mavericks 64位上使用OpenCV 2.4.7 我使用mac端口安装了OpenCV “sudo端口安装opencv” 我将搜索路径头和库(分别)指向 /选择/本地/包括 /opt/local/lib 在构建阶段:我已将以下内容添加到“将二进制文件链接到库”部分: libopencv_imgproc.2.4.7.dylib libopencv_core.2.4.7.dylib 在Xcode 5中构建,没有问题 我遇到了OpenCV的调整大小功能的问题。我测试了一个场景,其中d
- (NSMutableArray*) resizeWithPixelData: (NSMutableArray*) pixelData withWidth: (int) width withHeight: (int) height withFactor: (float) resizeFactor withDirection: (NSString*) resizeDirection {
cv::Mat image(height,width,CV_8UC1); //height, width ... no colours.
//NSLog(@" %i %i",image.cols,image.rows);
for (int i = 0; i < image.rows; i++) {
for (int j = 0; j < image.cols; j++) {
cv::Vec3b &intensity = image.at<cv::Vec3b>(i, j);
for(int k = 0; k < image.channels(); k++) {
//uchar col = intensity.val[k];
uint8_t value = [[pixelData objectAtIndex:i*width + j] intValue];;
intensity.val[k] = (uchar) value;
}
}
}
cv::Mat newimage;
//NSLog(@"height %d width %d",height,resizeFactor*width);
if ([resizeDirection isEqualToString:@"x"]){
cv::resize(image, newimage, cv::Size((int)resizeFactor*width,(int)height),0,0,CV_INTER_CUBIC);
}
NSLog(@" resize width width %i height %i ",image.cols,image.rows);
NSLog(@" resize width width %i height %i ",newimage.cols,newimage.rows);
NSMutableArray* resizedPixelData = [[NSMutableArray alloc] init];
for (int i = 0; i < newimage.rows; i++) {
for (int j = 0; j < newimage.cols; j++) {
cv::Vec3b intensity = newimage.at<cv::Vec3b>(i, j);
for(int k = 0; k < newimage.channels(); k++) {
uchar col = intensity.val[k];
//NSLog(@" %i ",(uint8_t)col);
[resizedPixelData addObject:[NSNumber numberWithInt:(uint8_t)col]];
}
}
}
return resizedPixelData;
}
-(NSMutableArray*)使用pixelData调整大小:(NSMutableArray*)使用宽度的pixelData:(int)使用高度的宽度:(int)使用因子的高度:(float)使用方向的调整因子:(NSString*)调整方向{
cv::Mat图像(高度、宽度、cv_8UC1);//高度、宽度……无颜色。
//NSLog(@“%i%i”,image.cols,image.rows);
对于(int i=0;i
如果有人能指出解决此问题的方法,我们将不胜感激
它是opencv的当前版本吗
对resize函数的调用是否不正确
与Xcode/OSX/Mavericks不兼容
上述函数位于.mm文件中(即objective-C plus)
干杯
J.我会转换成NSImage或CGImageRef并在那里处理它。。。缩放是复杂的。我改为使用3通道CV_8UC3而不是CV_8UC1。虽然我尝试坚持使用CV_8UC1并访问图像。但在使用uchar时,这不起作用。酷,你应该为你的问题写一个答案,以便人们可以从你的经验中受益。