opencv 矩阵的相似性对比 (图片之间比较)
2013-08-17 14:18
246 查看
测试图片:
code:
code:
#include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\cxcore.h> #include <stdlib.h> #include <stdio.h> /* *函数功能:获取输入图像 的轮廓 * *输入: *srcIn : 单通道图像 * *返回: *CvSeq* : 存储轮廓信息 * */ CvSeq* getImageContour(IplImage* srcIn){ IplImage* src; src = cvCreateImage(cvGetSize(srcIn),8,1); //拷贝图像 cvCopy(srcIn,src); //创建空间 CvMemStorage* mem = cvCreateMemStorage(0); //结构体 (mem和seq属于同一个地址<当释放的时候只要释放一个就行了>) CvSeq* seq; if(!mem){ printf("mem is null"); } //二值化图像 cvThreshold(src,src,100,255,0); //计算图像轮廓 计算后的轮廓信息不能释放 在后面需要用到 cvFindContours(src,mem,&seq,sizeof(CvContour),CV_RETR_CCOMP); //释放图像空间 cvReleaseImage(&src); //返回轮廓信息 return seq; } int main(int argc, char* argv[]){ //加载图像1 IplImage* src1 = cvLoadImage("C:\\Users\\zxl\\Desktop\\1.png",CV_LOAD_IMAGE_GRAYSCALE); //获取图像1的轮廓 CvSeq* contour1; contour1 = getImageContour(src1); //加载图像2 IplImage* src2 = cvLoadImage("C:\\Users\\zxl\\Desktop\\3.png",CV_LOAD_IMAGE_GRAYSCALE); //获取图像2的轮廓 CvSeq* contour2; contour2 = getImageContour(src2); //进行比对 -- 比较这两个轮廓所对应的HU矩的距离 有多远 double result; //cvMatchShapes函数参数(轮廓1,轮廓2,方法) //计算第一个轮廓的普通矩和中心距 , 然后计算这个矩形的HU矩(HU距的7个数值保存在ma的数组里) //的哥个轮廓同上(HU距保存在mb中) //然后比较这两个HU距的相似性 //方法参数有3个 参数分别是1,2,3 三种计算方法 result = cvMatchShapes(contour1,contour2,1); //输出结果 结果越小 相似度越高 printf("result is %f \n",result); //释放轮廓存储空间 cvReleaseMemStorage(&contour1->storage); cvReleaseMemStorage(&contour2->storage); //释放图像空间 cvReleaseImage(&src1); cvReleaseImage(&src2); return 0; }
相关文章推荐
- opencv 矩阵的相似性对比 (图片之间比较)
- OpenCv直方图对比图片的相似性
- OpenCv直方图对比图片的相似性
- 使用opencv比较两个图片的相似性
- opencv比较两个图片的相似性
- OpenCv直方图对比图片的相似性
- 转:OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度
- libpuzzle-php扩展比较图片间的相似性
- 怎样才能快速的对比图片之间的差异
- 安卓手机图片相似度对比--OpenCV感知哈希算法
- 利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求出变换矩阵(findFundamentalMat和findHomography的比较)
- 利用OpenCV感知哈希算法进行图片相似度对比
- OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度
- OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度
- Opencv-Mat图像矩阵与LPBYTE图像矩阵之间的转换
- OpenCV图片矩阵操作相关,对png图片操作(多通道)
- OpenCV读取图片并对比(可窗口显示)
- OpenCV图片矩阵操作相关,对png图片操作(多通道)
- opencv3.1图片相似度对比和人脸检测裁剪
- OpenCV图片矩阵操作相关,对png图片操作(多通道)