您的位置:首页 > 运维架构

opencv+vs2008实现canny边缘检测与hough变换检测直线并用红线在原图标出直线

2015-08-02 08:59 573 查看
以改进的算法

#include<opencv2\opencv.hpp>

#include <iostream>

using namespace std;

using namespace cv;

int main()

{

Mat image=imread("sishiduerci.bmp");

Mat I;

cvtColor(image,I,CV_BGR2GRAY);



Mat contours;

Canny(I,contours,125,350);



vector<Vec4i> lines;

// 检测直线,最小投票为90,线条不短于50,间隙不小于10

HoughLinesP(I,lines,1,CV_PI/180,80,50,3);

//vector<Vec4i>::const_iterator it=lines.begin();

for (size_t i = 0; i < lines.size(); i++)//size_t即unsigned int

{

Vec4i k = lines[i];//此处为英文字母l

line(image, Point(k[0], k[1]), Point(k[2], k[3]), Scalar(0, 255, 255), 3);

}



namedWindow("Lines");

imshow("contours",image);

waitKey(0);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: