下面是演示代码:
#include
#include"opencv2/opencv.hpp"
usingnamespacestd
usingnamespacecv
intmain()
{
Matk=imread("E:/TestGit/8.jpg",0)
Matf
Matk1=imread("E:/TestGit/9.jpg",0)
Matf1
threshold(k,f,50,255,THRESH_BINARY)//对图像进行二值化
threshold(k1,f1,50,255,THRESH_BINARY)
Matcloserect=getStructuringElement(MORPH_RECT,Size(3,3))//进行结构和租禅算子生成
morphologyEx(f,f,MORPH_OPEN,closerect)
morphologyEx(f1,f1,MORPH_OPEN,closerect)//进行形态学开运算
Matdst=Mat::zeros(k.rows,k.cols,CV_8UC3)
Matdst1=Mat::zeros(k1.rows,k1.cols,CV_8UC3)
vector>w,w1
vectorhierarchy,hierarchy1
findContours(f,w,hierarchy,RETR_CCOMP,CHAIN_APPROX_SIMPLE)//提取轮廓元素
findContours(f1,w1,hierarchy1,RETR_CCOMP,CHAIN_APPROX_SIMPLE)
FileStoragefs("f.dat",FileStorage::WRITE)
fs
intidx=0
doubleffff=matchShapes(w[0],w1[0],CV_CONTOURS_MATCH_I3,1.0)//进行轮廓匹配
std::cout
system("pause")
return0
}
这样,我们就得到了轮廓边缘的提取和匹配,满足了需要。而不同的算子具有不同的匹配算子方法。
0),w1,THRESH_BINARY),CV_CONTOURS_MATCH_I3, CV_8UC3),w1/, k档羡 Mat fE主要步骤1,closerect)/w1[0]w<,减少孔洞等次要特征,255
Mat closerect=getStructuringElement(MORPH_RECT/.读取一幅图片pause",3))。而不同的算子具有不同的匹配算子方法::WRITE).jpg",50,RETR_CCOMP,w,满足了需要:.进行形状轮廓匹配
int idx=0,并且对其进行二值化
system("f",0),我们就得到了轮廓边缘的提取和匹配:zeros(k1:,hierarchy1 ,CHAIN_APPROX_SIMPLE), CV_8UC3), k1opencv
using namespace cv:,255.dat",fstd进行结构算子生成
morphologyEx(f:zeros(kiostream>/
findContours(f.对其进行形态学处理。48
double ffff=matchShapes(w[0]
vector<对图像进行二值化
threshold(k1,CHAIN_APPROX_SIMPLE),保留其主要特征,RETR_CCOMP
Mat dst1 = Matffff<TestGit/TestGit/.进行边念蠢樱缘提取E提取轮廓元素
findContours(f1/>。3/f,Size(3.rows,FileStorage
morphologyEx(f1</Point>进行形态学开运算
Mat dst = Mat,w1[0]
Mat k1=imread(":cout<.rows:
#include <
Mat f1
int main()
{
Mat k=imread(".jpg":/进行轮廓匹配
std,得到其匹配值,hierarchy1,从而判断是否仔丛是同一个形状/
using namespace std,f1,MORPH_OPEN/,THRESH_BINARY),closerect),hierarchy。
下面是演示代码,MORPH_OPEN。2
#include " hierarchy
vector<.cols:endl<:/,1opencv2/Vec4i>
return 0
fs<".hpp"
FileStorage fs(",50:/.cols9
threshold(k
}
这样,0),f1vector<,f<)<
我在用opencv做手势碰雹识别时,也核吵槐和你一样用了轮廓匹配的方法,我在制作手势轮廓时,是自己写了一个从摄像头提取图像的程序,然后自己摆出手势(其实就是改一改opencv自带的视频获取的例子,每隔一定帧数将摄像头提取到的帧保存到本地)从保存的手势中选取自己认为比较标准的作为模板。自己试了一下,匹配精度还算不错。。。另外告诉你,如果你要想这样做的话,一定要注意匹配的原图像和模板的大小尽量保持一致。。。
纯手工打,希望对你有用改友!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)