OpenCV_HoughLinesP()函数检测直线

一,原图

二,代码

//霍夫变换检测直线
void HoughLinesP_Test()
{
	Mat src = imread("D:\\原图.jpg", 0);
	Mat CannyImg;
	Canny(src, CannyImg, 140, 250, 3);

	imshow("CannyImg", CannyImg);

	Mat DstImg;
	cvtColor(src, DstImg, CV_GRAY2BGR);

	vector<Vec4i> Lines;
	//void HoughLinesP(InputArray image, OutputArray lines, double rho, double theta, int threshold,double minLineLength=0, double maxLineGap=0 )
	//image : 边缘检测的输出图像.它应该是个灰度图(但事实上是个二值化图) *
	//lines : 储存着检测到的直线的参数对  的容器,也就是线段两个端点的坐标
	//rho  : 参数极径  以像素值为单位的分辨率.我们使用 1 像素.
	//theta : 参数极角  以弧度为单位的分辨率.我们使用 1度 (即CV_PI / 180)
	//threshold : 要”检测” 一条直线所需最少的的曲线交点 
	//minLinLength : 能组成一条直线的最少点的数量.点数量不足的直线将被抛弃.线段的最小长度
	//maxLineGap : 线段上最近两点之间的阈值									
	HoughLinesP(CannyImg, Lines, 1, CV_PI / 360, 170, 200, 15);
	for (size_t i = 0; i < Lines.size(); i++)
	{
		line(DstImg, Point(Lines[i][0], Lines[i][1]), Point(Lines[i][2], Lines[i][3]), Scalar(0, 0, 255), 2, 8);
	}
	imshow("HoughLines_Detect", DstImg);
	waitKey(0);
}

//测试
void CCutImageVS2013Dlg::OnBnClickedTestButton1()
{
	HoughLinesP_Test();
}

三,结果

 

 

 

欢迎扫码关注我的微信公众号

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值