用轮廓树(CvContourTree)来描述两个轮廓的相似度量度

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
#include "function.h"
int MatchContour(int argc,char** argv)
{
IplImage *Src1=cvLoadImage("e:\\picture\\jiantou.jpg",0);
IplImage *Src2=cvLoadImage("e:\\picture\\jiantou2.jpg",0);
IplImage *BinaryImage1=cvCreateImage(cvGetSize(Src1),Src1->depth,1);
IplImage *BinaryImage2=cvCreateImage(cvGetSize(Src2),Src2->depth,1);
IplImage *SrcColor1=cvCreateImage(cvGetSize(Src1),Src1->depth,3);
IplImage *SrcColor2=cvCreateImage(cvGetSize(Src2),Src2->depth,3);
cvThreshold(Src1,BinaryImage1,100,255,CV_THRESH_BINARY);
cvThreshold(Src2,BinaryImage2,100,255,CV_THRESH_BINARY);
CvMemStorage* storage1=cvCreateMemStorage(0);
CvMemStorage* storage2=cvCreateMemStorage(0);
CvSeq* ContourSeq1=NULL;
CvSeq* ContourSeq2=NULL;
cvFindContours(BinaryImage1,storage1,&ContourSeq1,sizeof(CvContour));
cvFindContours(BinaryImage2,storage2,&ContourSeq2,sizeof(CvContour));
cvCvtColor(Src1,SrcColor1,CV_GRAY2BGR);
cvCvtColor(Src2,SrcColor2,CV_GRAY2BGR);
cvDrawContours(
return 0;
}

用轮廓树(CvContourTree)来描述两个轮廓的相似度量度

时间: 2024-11-11 17:55:49

用轮廓树(CvContourTree)来描述两个轮廓的相似度量度的相关文章

OpenCV成长之路:直线、轮廓的提取与描述

http://ronny.blog.51cto.com/8801997/1394139 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ronny.blog.51cto.com/8801997/1394139 基于内容的图像分析的重点是提取出图像中具有代表性的特征,而线条.轮廓.块往往是最能体现特征的几个元素,这篇文章就针对于这几个重要的图像特征,研究它们在OpenCV中的用法,以及做一些简单的基础应用. 一.Canny检测轮

OpenCV入门教程之八 直线、轮廓的提取与描述

基于内容的图像分析的重点是提取出图像中具有代表性的特征,而线条.轮廓.块往往是最能体现特征的几个元素,这篇文章就针对于这几个重要的图像特征,研究它们在OpenCV中的用法,以及做一些简单的基础应用. 一.Canny检测轮廓 在上一篇文章中有提到sobel边缘检测,并重写了soble的C++代码让其与matlab中算法效果一致,而soble边缘检测是基于单一阈值的,我们不能兼顾到低阈值的丰富边缘和高阈值时的边缘缺失这两个问题.而canny算子则很好的弥补了这一不足,从目前看来,canny边缘检测在

opencv计算两个轮廓之间hu矩相似程度,MatchShapes

https://blog.csdn.net/jiake_yang/article/details/52589063 [OpenCV3.3]通过透视变换矫正变形图像 https://blog.csdn.net/rrrfff/article/details/77340641 OPENCV提供了输入图像直接进行hu矩匹配的函数,返回的是两个图像或轮廓之间hu矩的相似度: double cvMatchShapes(const void*object1,const void*object2,int met

计算两个字符串的相似度---动态规划实现

问题描述:把两个字符串变成相同的基本操作定义如下:1.     修改一个字符(如把 a 变成 b)2.     增加一个字符 (如 abed 变成 abedd)3.     删除一个字符(如 jackbllog 变成 jackblog)针对于 jackbllog到jackblog 只需要删除一个或增加一个 l 就可以把两个字符串变为相同.把这种操作需要的次数定义为两个字符串的距离 L, 则相似度定义为1/(L+1) 即距离加一的倒数.那么jackbllog和jackblog的相似度为 1/1+1

Opencv-python 找到图像轮廓并绘制,cv2.findContours()函数,求轮廓外接矩形,cv2.boundingrect()

一.查找图像轮廓 opencv-python中查找图像轮廓的API为:findContours函数 该函数接受二值图作为参数,根据参数,可查找物体外轮廓.内外轮廓,保存轮廓点.压缩等等... 如:contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) def findContours(image, mode, method, contours=None, hierarchy=None

模式识别之相似度计量---余弦计算相似度度量关于两句话的相似度

余弦计算相似度度量 相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大. 对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度.下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度 向量空间余弦相似度(Cosine Similarity) 余弦相似度用向

使用MinHash算法计算两个集合的相似度

集合相似度计算是一个常见的问题.例如,已知看过芈月传的人都有哪些,还知道看过琅琊榜的人都有哪些,那么想知道同时看过两者的人群占至少看过一部的人群的占比,就是求这两个集合的相似度: 集合A = 看过芈月传的人群集合B = 看过琅琊榜的人群相似度 = |A∩B| / |A∪B| = 既看过芈月传又看过琅琊榜的人数 / 看过芈月传或琅琊榜的人数 当集合的元素较少时,我们可以采用逐一比较的方式来找出既在集合A出现也在集合B出现的人,统计其人数,再除以至少在集合A或集合B出现的人数,得到相似度. 然而当集

比较字符串总结:如果计算两个字符串的相似度或者距离

有关字符串相关比较问题,一般处理方法都选择动态规划处理方法.或者是单个循环,或者是多个循环:dp 遇到这种两个串的问题,很容易想到DP.但是这道题的递推关系不明显.可以先尝试做一个二维的表int[][] dp,用来记录匹配子序列的个数(以S="rabbbit",T = "rabbit"为例): r a b b b i t 1 1 1 1 1 1 1 1 r 0 1 1 1 1 1 1 1 a 0 0 1 1 1 1 1 1 b 0 0 0 1 2 3 3 3 b 0

iOS比较两张图的相似度

1.下载openCV 2.导入openCV的framework 3.导入: opencv2 Accelerate AssetsLibrary AVFoundation CoreGraphics CoreImage CoreMedia CoreVideo QuartzCore UIKit Foundation 4.修改配置 accordingtype --->ObjectiveC++ #ifdef __cplusplus #import <opencv2/opencv.hpp> #endi