以改进的算法
#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;
}