objective-c - 使用 openCV 在 iphone 中进行对象检测?模板匹配还是haar?

标签 objective-c opencv

我需要做一个可以在图像中查找图像模式的 iphone 应用程序。 (比如 this)

经过多次谷歌搜索,我觉得我唯一的选择是使用已为 objectiveC 移植的 opencv 中的模板匹配功能。

我从 this 中为 objectiveC 中的简单 opencv 项目找到了一个很好的起点。 github代码。

但它只是使用了openCV中的边缘检测和人脸检测功能。我需要一个在 iPhone 的 objectiveC 中使用模板匹配函数“cvMatchTemplate”的 objectiveC 示例?

下面是我现在的代码:(至少它没有给我错误,但是这段代码返回一个完全黑色的图像,我期待匹配区域会更亮的结果图像?)

    IplImage *imgTemplate = [self CreateIplImageFromUIImage:[UIImage imageNamed:@"laughing_man.png"]];
    IplImage *imgSource = [self CreateIplImageFromUIImage:imageView.image];        
    CvSize sizeTemplate = cvGetSize(imgTemplate);
    CvSize sizeSrc = cvGetSize(imgSource);       
    CvSize sizeResult = cvSize(sizeSrc.width - sizeTemplate.width+1, sizeSrc.height-sizeTemplate.height + 1);
    IplImage *imgResult = cvCreateImage(sizeResult, IPL_DEPTH_32F, 1);
    cvMatchTemplate(imgSource, imgTemplate, imgResult, CV_TM_CCORR_NORMED);
    cvReleaseImage(&imgSource);
    cvReleaseImage(&imgTemplate);        
    imageView.image = [self UIImageFromIplImage:imgResult];
    cvReleaseImage(&imgResult);

p/s:或者,我应该尝试使用 cvHaarDetectObjects 来识别对象吗?

最佳答案

cvMatchTemplate 的结果是一个 32 位浮点图像。为了显示结果,您需要将其转换为无符号字符、8 位图像 (IPL_DEPTH_8U)。

CV_TM_CCORR_NORMED 方法产生 [0, 1] 之间的值,cvConvertScale 提供了一种简单的方法来进行缩放和类型转换。尝试将以下内容添加到您的代码中:

IplImage* displayImgResult = cvCreateImage( cvGetSize( imgResult ), IPL_DEPTH_8U, 1);    
cvConvertScale( imgResult, displayImgResult, 255, 0 );
imageView.image = [self UIImageFromIplImage:displayImgResult];

关于objective-c - 使用 openCV 在 iphone 中进行对象检测?模板匹配还是haar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661706/

相关文章:

objective-c - 无法仅在 "ios 5.0"中在导航栏上设置图像

objective-c - 全屏怎么挡热角

objective-c - NSManagedObject 的 transient 实例

c++ - C++ 如何知道在哪里寻找使用 "using namespace ..."指定的命名空间?

c++ - 未处理的异常...访问冲突读取位置

ios - 为什么在 dealloc 方法中没有释放对象?

ios - 如果我想确保我返回的 NSMutableArray 仅被视为 NSArray,那么复制我应该使用的是什么? Actor ?

带 mask 的 OpenCV floodfill

c++ - Haarcascade 仅在 348x288 图像上运行?

opencv - cv::bitwise_not on cv::Mat 矩阵