首页 > 代码库 > canny边缘检测 demo
canny边缘检测 demo
#include <iostream>#include <string>#include <sstream>#include <opencv/cv.h>#include <opencv/highgui.h>using namespace std;int String2int(const string& str_){ int _nre = 0; stringstream _ss; _ss << str_; _ss >> _nre; return _nre;}void DoCanny(const string& strFileName_){ //原彩色图片 IplImage* _pIplImageIn = cvLoadImage(strFileName_.data()); if (_pIplImageIn == NULL) { return; } //彩色图片转换成灰度图放置的图片 IplImage* _pIplImageCanny = cvCreateImage(cvGetSize(_pIplImageIn), _pIplImageIn->depth, 1); cvCvtColor(_pIplImageIn, _pIplImageCanny, CV_RGB2GRAY);//CV_RGB2GRAY将rgb图转成灰度图 //只有边缘路径的图片 IplImage* _pIplImageOut = cvCreateImage(cvGetSize(_pIplImageIn), IPL_DEPTH_8U, 1); //边缘检测只能作用于灰度图 if (_pIplImageCanny->nChannels != 1) { return; } //边缘检测操作 cvCanny(_pIplImageCanny, _pIplImageOut, 50, 200, 3); cvNamedWindow("Src",0); cvShowImage("Src", _pIplImageIn); cvNamedWindow("Canny",0); cvShowImage("Canny", _pIplImageOut); cvWaitKey(0); cvReleaseImage(&_pIplImageIn); cvReleaseImage(&_pIplImageCanny); cvReleaseImage(&_pIplImageOut); cvDestroyWindow("Src"); cvDestroyWindow("Canny");}int main(int argc, char* argv[]){ if (argc < 2) { cout << "You should give the filename of picture!" << endl; return -1; } DoCanny(argv[1]); return 0;}
canny边缘检测 demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。