欢迎来到天天文库
浏览记录
ID:9369335
大小:351.30 KB
页数:17页
时间:2018-04-29
《基于opencv的裂纹纹检测系统c++源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本文中代码为作者参考网络相关资料基础上的开发成果,仅供参考学习,如有其他机器视觉领域算法和软件定制需要,请联系作者Email:2466650587@qq.com基于OpenCV实现的裂纹检测系统C++源代码(亲测可用)1.功能介绍本程序可实现从原始包含裂纹的图像中检测出裂纹的位置并进行标识。待测图片2.实现源代码共包含main.cpp,CrackDetection.cpp,CrackDetection.h三个文件。Main.cpp#include#include#i
2、nclude本文中代码为作者参考网络相关资料基础上的开发成果,仅供参考学习,如有其他机器视觉领域算法和软件定制需要,请联系作者Email:2466650587@qq.com#include"CrackDetection.h"usingnamespacecv;usingnamespacestd;listFindAllFile(conststring&filespath){_finddata_tfileInfo;listfile_list;longfindResult=_fin
3、dfirst(filespath.c_str(),&fileInfo);if(-1L==findResult){_findclose(findResult);returnfile_list;}do{file_list.push_back(fileInfo.name);}while(0L==_findnext(findResult,&fileInfo));_findclose(findResult);returnfile_list;}intmain(intargc,char*argv[]){listfi
4、lelist;本文中代码为作者参考网络相关资料基础上的开发成果,仅供参考学习,如有其他机器视觉领域算法和软件定制需要,请联系作者Email:2466650587@qq.comdoubletotaltime;filelist=FindAllFile("img_inputs\*.jpg");filelist.splice(filelist.begin(),FindAllFile("img_inputs\*.png"));for(list::iteratorit=filelist.begin();it!
5、=filelist.end();it++){MatimgRaw=imread(".\img_samples\"+*it);//imshow("srcimg",imgRaw);CrackDetectioncrackInfo(imgRaw,*it);imwrite(".\img_crackDetection\"+*it,crackInfo.GetImgCrackHighlight());cout<<*it<<"----->"<6、"PAUSE");waitKey();return0;}CrackDetection.cpp#include"CrackDetection.h"staticinlineintGetContourSpan(vector&contours){intminX=0x7FFFFFFF,minY=0x7FFFFFFF;intmaxX=0,maxY=0;本文中代码为作者参考网络相关资料基础上的开发成果,仅供参考学习,如有其他机器视觉领域算法和软件定制需要,请联系作者Email:2466650587@qq.comfor7、(vector::iteratorit=contours.begin();it!=contours.end();it++){if(it->x>maxX)maxX=it->x;if(it->y>maxY)maxY=it->y;if(it->xx;if(it->yy;}returnmaxY-minY>maxX-minX?maxY-minY:maxX-minX;}staticinlineboolContoursSortByArea(vector8、::Point>&contour1,vector&contour2){return(contourArea(contour1)>contourArea(contour2));}staticinlineboolContoursSortBySpan(vector&contour1,vector
6、"PAUSE");waitKey();return0;}CrackDetection.cpp#include"CrackDetection.h"staticinlineintGetContourSpan(vector&contours){intminX=0x7FFFFFFF,minY=0x7FFFFFFF;intmaxX=0,maxY=0;本文中代码为作者参考网络相关资料基础上的开发成果,仅供参考学习,如有其他机器视觉领域算法和软件定制需要,请联系作者Email:2466650587@qq.comfor
7、(vector::iteratorit=contours.begin();it!=contours.end();it++){if(it->x>maxX)maxX=it->x;if(it->y>maxY)maxY=it->y;if(it->xx;if(it->yy;}returnmaxY-minY>maxX-minX?maxY-minY:maxX-minX;}staticinlineboolContoursSortByArea(vector8、::Point>&contour1,vector&contour2){return(contourArea(contour1)>contourArea(contour2));}staticinlineboolContoursSortBySpan(vector&contour1,vector
8、::Point>&contour1,vector&contour2){return(contourArea(contour1)>contourArea(contour2));}staticinlineboolContoursSortBySpan(vector&contour1,vector
此文档下载收益归作者所有