matchTemplate opencv 无法正常工作,如 opencv 文档中所示

2024-01-22

我正在努力解决这个问题,因为在我从相机捕获的图像中,我需要找到某些图案的存在和位置。

为此我发现使用matchTemplateopencv的方法。我使用了opencv示例中使用的图像并编写了代码,但结果不同。

http://opencv.itseez.com/doc/tutorials/imgproc/histograms/template_matching/template_matching.html http://opencv.itseez.com/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

这是告诉我们关于 matchTemplate 的链接。

当我实现它时,它显示了结果:-

我的代码如下:-

-(void)matchPatchNet
{
    IplImage    *res;
    CvPoint     minloc, maxloc;
    double      minval, maxval;
    int         img_width, img_height;
    int         tpl_width, tpl_height;
    int         res_width, res_height;


    NSString *pathPatron = [[NSBundle mainBundle] pathForResource:@"timage" ofType:@"jpg"];

    UIImage *tim = [UIImage imageWithContentsOfFile:pathPatron];
    NSString *pathPatron2 = [[NSBundle mainBundle] pathForResource:@"simage" ofType:@"jpg"];

    UIImage *tim2 = [UIImage imageWithContentsOfFile:pathPatron2];

    IplImage *img = [self CreateIplImageFromUIImage:tim2];//

    IplImage *tpl = [self CreateIplImageFromUIImage:tim];
    cv::Mat forground1 = [tim2 CVMat];

    cv::Mat forground2 = [tim CVMat];
    img_width  = img->width;
    img_height = img->height;
    tpl_width  = tpl->width;
    tpl_height = tpl->height;
    res_width  = img_width - tpl_width + 1;
    res_height = img_height - tpl_height + 1;    
    res = cvCreateImage( cvSize( res_width, res_height ), IPL_DEPTH_32F, 1 );

    cvMatchTemplate( img, tpl, res, CV_TM_CCOEFF_NORMED );

    UIImage *ipala=[self UIImageFromIplImage:res];
    cv::Mat forground3 = [ipala CVMat];
    cv::normalize(forground3, forground3, 0, 1, cv::NORM_MINMAX, CV_8UC1);

    cvMinMaxLoc( res, &minval, &maxval, &minloc, &maxloc, 0 );    

    cvRectangle( img, 
                cvPoint( maxloc.x, maxloc.y ), 
                cvPoint( maxloc.x + tpl_width, maxloc.y + tpl_height ),
                cvScalar( 0, 255, 0, 0 ), 1, 0, 0 ); 
    /* display images */
    self.imageView.image = [self UIImageFromIplImage:img]; 
    cvReleaseImage(&img);
    cvReleaseImage(&tpl);
    cvReleaseImage(&res);
}

请告诉我我做错了什么。请帮助我。

提前致谢


我强烈建议您使用 C++ 接口和当前文档,您可以在这里找到它们:OpenCV v2.4.2 文档 http://docs.opencv.org/

在此处获取适用于 iOS 的最新 OpenCV 版本:适用于 iOS 的 OpenCV http://sourceforge.net/projects/opencvlibrary/files/opencv-ios/2.4.2/opencv2.framework.zip/download并将其放入您的项目中并将其包含到您的项目前缀中:

示例应用程序前缀.pch:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matchTemplate opencv 无法正常工作,如 opencv 文档中所示 的相关文章

随机推荐

  • GMAIL 中具有非 HTTP 架构的超链接

    因此 我正在制作移动应用程序 并希望使用相同的 URL 制作链接来激活 iOS 和 Android 中的内容 我已经知道该怎么做了 我对 Android 的意图是这样的
  • 如何在子菜单上使用滚动条时显示子菜单?

    当我有滚动条时 我的子菜单不会显示 我正在使用引导程序 这是我的html代码 a href Location a ul class dropdown menu scrollable menu li class dropdown submen
  • 如何调试eclipse插件的启动?

    我尝试将 Eclipse 插件从 Java8 迁移到 Java9 如果我启动调试会话 作为 Eclipse 应用程序运行 一切正常 但是 安装插件后我无法使用它 如果我在 OSGI 控制台中使用 ss 我的插件会得到以下状态 1102 ST
  • 使用正则表达式生成字符串而不是匹配它们[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一个 Java 实用程序 可以帮助我生成大量数据以进行性能测试 这将是really能够为字符串
  • 发现存储特定面向对象数据结构的最佳方法

    经过一些奇妙的建议 以及由于最终有可能解决我的问题而兴奋的不眠之夜 我意识到我仍然没有完全找到解决方案 因此 我在这里更详细地概述我的问题 希望有人知道实现这一目标的最佳方法 回顾一下 如果你还没有读过上一篇文章 https stackov
  • 快速 count() 两个字符串数组的交集

    我需要计算两个大字符串数组的交集对应的元素数量 并且速度非常快 我正在使用以下代码 arr1 i Intersect arr2 j Count 对于 CPU 时间 VS Profiler 指示 85 1 在System Linq Enume
  • Redis扫描跳过键

    我正在使用 predis 如果有什么区别的话 可以使用 laravel php 客户端来与 Redis 一起工作 我需要从 Redis 获取与特定前缀匹配的所有键 我这样做 keys foreach new Iterator Keyspac
  • 我可以关闭 Kramdown 中的代码块吗?

    我可以关闭 Jekyll 中的代码块吗 它将使我的 md 文件更具可读性 我在内联 HTML 和包含文件中都遇到这个问题 我使用 Jekyll 创建网站 从不需要代码块 现在我将样式放入 HTML 中 如下所示 div class cool
  • Angular 5 + Angular Material Select + Reactive Forms == 没有显示初始选项

    正如标题所说 我有一个反应形式 有多个
  • 这个命令在 bash 中起什么作用: ,_,( ){ ,_,| ,_,&};,_,

    我不确定这意味着什么 看起来像 bash 命令 但它可能是 bash shell 指令或其他东西 如果有人可以帮助理解这一点 我将不胜感激 当我运行它时它杀死了我的bash It s a 叉子炸弹 http en wikipedia org
  • C++ 和 C 可变参数如何一起使用?

    通常 将 C 11 可变参数模板功能与函数一起使用需要基于可变参数的函数参数位于函数参数列表中的最后一个 有一个例外 如果存在 C 级可变参数 它们是倒数第二个参数 这必须是最后一个 template lt typename Args gt
  • 编辑 plist 中的现有数据

    通过编码检查数据是否已经存在后 如何覆盖 plist 中的现有数据 详细地 我将用户名和密码保存在位于文档目录中的 plist 文件中 现在 如果用户选择更改密码选项 plist 应检查他的用户名是否存在 如果存在 那么他输入的新密码应该覆
  • 更改微调器下拉宽度

    我需要调整该部分的大小以完全显示 我怎样才能做到这一点 我的适配器 String navigations getResources getStringArray R array actionBar ArrayAdapter
  • SSL 和中间人攻击

    我的印象是 自签名证书会带来中间人攻击的风险 因为中间人可以向客户端提供不同的自签名证书 我的问题如下 如果我在服务器上使用自签名证书 使用 SelfSSL 并且在运行 ssl 页面 这是一个管理页面 不面向公众 时 浏览器会向我发出警告
  • 如何打乱 ArrayList 的特定范围?

    在Java中 我知道要打乱ArrayList 存在Collections shuffle 方法 但是这会打乱整个列表 我如何编写一个方法 或者 有人可以编写它并向我展示吗 如下所示 private ArrayList
  • 启动 Core Data 应用程序时在后台配置 NSFetchedResultsController

    我已经使用通常的样板代码设置了一个 Core Data 应用程序 并且 RootViewController 通过调用以下命令来初始化 FRC NSFetchedResultsController fetchedResultsControl
  • websocket客户端连接服务器时出现SockJsException

    我使用带有 websocket 支持的 spring 4 0 3 我的 websocket spring 配置是
  • 如何将光标放在 NetBeans Java 文件模板中?

    我希望在 NetBeans 中创建接口 类等时将光标置于 JavaDoc 区域 您可以使用 cursor 对于非基于文件的模板 但这不适用于文件模板 lt if package package gt package package curs
  • 并发访问公共字段。为什么可以观察到不一致的状态?

    我正在阅读 B Goetz Java 并发实践 现在我正在阅读section 3 5关于安全出版 他说 Unsafe publication public Holder holder public void initialize holde
  • matchTemplate opencv 无法正常工作,如 opencv 文档中所示

    我正在努力解决这个问题 因为在我从相机捕获的图像中 我需要找到某些图案的存在和位置 为此我发现使用matchTemplateopencv的方法 我使用了opencv示例中使用的图像并编写了代码 但结果不同 http opencv itsee