21 - 霍夫变换 - 直线检测

21 - 霍夫变换 - 直线检测

代码 和理解注释:

#include<opencv2/opencv.hpp>;
#include<opencv2/imgproc/types_c.h>;
#include<iostream>;
using namespace cv;
using namespace std;
int main(int argc, char* argv) {  //   21 - 霍夫变换-直线检测 
	Mat source1,source1_Gray,change1;
	source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\12.jpg");
	if (!source1.data) { printf("can not load image ... \n"); return -1; }
	imshow("source1", source1);

	Canny(source1,source1_Gray,100,200);  // Canny 边缘检测《前提》
//	imshow("source1_Gray1", source1_Gray);
	cvtColor(source1_Gray,change1, CV_GRAY2BGR); //灰度转为BGR
	imshow("source1_Gray", source1_Gray);

	vector<Vec4f>  plines; // 二维浮点数组
	HoughLinesP(source1_Gray,plines,1,CV_PI/180.0,10,0,10); // 霍夫直线检测
		// (操作图像8-bit,线段坐标表示直线,扫描像素步长,生成极坐标角度步长,
    	// 阈值/一定数量的交点极坐标才当作直线,最小直线长度,最大间隔)
	Scalar color = Scalar(100,100,100);
	for (size_t i = 0; i < plines.size();i++) {
		Vec4f hline = plines[i];
		line(change1,Point(hline[0],hline[1]),Point(hline[2],hline[3]),color,3,LINE_AA); // 直线
	}
	imshow("change1",change1);
	waitKey(0);
	return 0;
}

代码演示效果:

21 - 霍夫变换 - 直线检测

 

 

 

21 - 霍夫变换 - 直线检测21 - 霍夫变换 - 直线检测 奥瑞起源 发布了25 篇原创文章 · 获赞 0 · 访问量 524 私信 关注
上一篇:自学python人脸识别---第三天


下一篇:吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用自动编解码网络实现黑白图片上色