模板匹配之zernike矩
zernike矩具有旋转不变性,广泛用于目标识别模板匹配,抗噪能力强。
zernike矩的原理就不过多赘述,上代码。
//求n的阶乘long TemplateMatch::factorial(int n){int result=1;while(n>1){result *= n;n-=1;}return result;}//zernike矩径向多项式double TemplateMatch::RadialPolynomial(double p, int n, int m){double radial=0;int s;double c;for (s=0; s<=(n-m)/2; s++){c=pow((double)(-1),(double)(s))*factorial(n-s)/((double)(factorial(s)*factorial((n+m)/2-s)*factorial((n-m)/2-s)));radial=radial+c*pow(p,n-2*s);}return radial;}//n阶m次zernike矩double TemplateMatch::ZernikeMoments(double *im,int imW,int imH, int n, int m){#define im(ROW,COL) im[imW*(ROW)+(COL)]double zr=0;double zi=0;int cnt=0;int x,y;double p;double radial=0;double theta=0;for (y=0; y<imH; y++){for(x=0; x<imW; x++){p=sqrt((double)((2*x-imW+1)*(2*x-imW+1)+(imH-1-2*y)*(imH-1-2*y)))/imW;if (p<=1){radial=RadialPolynomial(p,n,m);theta=atan2((double)(imH-1-2*y),(double)(2*x-imW+1));zr+=im(y,x)*radial*cos(m*theta);zi+=im(y,x)*radial*sin(m*theta);cnt++;}}}double A=(n+1)*sqrt((double)(zr*zr+zi*zi))/cnt;return A;}
模板匹配之zernike矩相关推荐
- OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界
最终效果如下: 左侧为检测图片.右侧为模板,右下角textbox为轮毂中心的像素坐标 操作步骤: 1.点击打开图像选择一张比较不错的图片,用于画模板: 2.在picturebox中画取ROI区域生成模 ...
- OpenCV-python 模板匹配-分水岭-GrabCut
一.模板匹配 1.单目标 单目标模板匹配的原理:模板图像在输入图像上做滑动操作(类似于 2D 卷积),模板图像与所在原图 patch 做比较,最终返回一个灰度图,每个像素代表该像素的邻域与模板的相似度 ...
- 使用OpenCV实现Halcon算法(3)基于轮廓的模板匹配
声明:本篇仅仅是分享网上的开源项目,算法非本人原创. 〇.算法效果展示 0.1要定位的模板一 找到的匹配 在有污损情况下找到的匹配 0.2要定位的模板2 找到的匹配 一. 理论部分 模板匹配的算法包括 ...
- Very fast template matching(非常快的模板匹配)
Very fast template matching(非常快的模板匹配) Integral image 代数矩的快速计算 快速模板匹配 算法步骤 结果 主要讲述文章"Very Fast T ...
- 《OpenCV3编程入门》学习笔记9 直方图与匹配(五)模板匹配
9.5 模板匹配 基本思想: 在一幅图像中寻找与另一幅模板图像最匹配的部分,通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配. 9.5.1 模板匹配:matchTemplate()函数 ...
- OpenCV+python:模板匹配
1,模板匹配的概念及原理 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术. 我们需要2幅图像: 模板 (T): 将和原图像比照的图像块 原图像 (I): 在这幅图像里,我们希望 ...
- OpenCV(项目)车牌识别3 -- 模板匹配
目录 一.基础理论 1.思想 2.大致过程 二.详细过程 1.首先需要模板库 2.得到模板 3.原图限定大小 4.模板匹配 5.匹配所有子文件夹,保存最佳得分(最匹配项) 三.大致过程(细分类,节省时 ...
- OpenCV(二十)模板匹配
目录 一.基础理论 1.作用与过程 2.原理 3.函数matchTemplate 二.代码 三.效果 参考资料 一.基础理论 1.作用与过程 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域, ...
- 人眼模板匹配自动跟踪
void trackEye(cv::Mat& im, cv::Mat& tpl, cv::Rect& rect) {// 人眼位置cv::Size pSize(rect.wid ...
最新文章
- 12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
- 合成孔径成像算法与实现_浅析太赫兹成像技术在消防领域中的应用前景
- 索尼笔记本bios如何设置VT-x/AMD-V兼容
- elasticsearch的update_by_query
- 来的多可选_您的框架有多可扩展性?
- 想学IT的必看!今年Android面试必问的这些技术面,架构师必备技能
- java ssm框架 mapper文件里的#符号和$符号的区别
- java中的step_Java中finalize()
- MapXtreme2004 连接oracle spatial的问题
- c# Winform 开发分屏显示应用程序
- 搭建 sock5代理服务器
- iOS - LocalNotification
- Android lint工具 检查的常见问题
- mysql with roll up_GROUP BY...WITH ROLL UP 分组统计后的再合计
- 数字图像处理与Python实现-图像变换-Radon变换
- 该怎么把光纤接入家里预埋的网线中?
- 乌镇现场 | 倪光南:人工智能应该更好的为人类的服务
- LostDungeon迷失地牢-壹
- 简单的机械臂设计(Splay树)
- 振动焊机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- 差分滤波器的实现及作用于图像提取图像的特征
- C语言实现成块数据读写操作 fread() fwrite()
- java扫描指定主机的端口socket服务
- matlab2c使用c++实现matlab函数系列教程-deconv函数
- labelme批量json_to_dataset转换
- basys3利用microblaze连接Pmod ad2
- zynq文档阅读之EMIO和MIO的细微差别
- linux python mysqldb安装包,linux环境下python中MySQLdb模块的安装方法
- pandas重置索引的几种方法探究
- PL/SQL TOAD 不安装Oracle客户端连接数据库的方法