霍夫变换检测圆c 语言,c++ 霍夫变换检测直线

通常这是一幅边缘图像,比如来自 Canny算子。cv:: Houghlines函数的输出是

cV::Vec2f向量,每个元素都是一对代表检测到的直线的浮点数(p,0)。在下例中

我们首先应用 Canny算子获取图像轮廓,然后基于霍夫变换检测直线

这个函数的的表达直线的方式用的不习惯的话可以用下面这个。

HoughLinesP函数的原型为:

void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0,double maxLineGap=0 )

image为输入图像,要求是8位单通道图像

lines为输出的直线向量,每条线用4个元素表示,即直线的两个端点的4个坐标值

rho和theta分别为距离和角度的分辨率

threshold为阈值,即步骤3中的阈值

minLineLength为最小直线长度,在步骤5中要用到,即如果小于该值,则不被认为是一条直线

maxLineGap为最大直线间隙,在步骤4中要用到,即如果有两条线段是在一条直线上,但它们之间因为有间隙,所以被认为是两个线段,如果这个间隙大于该值,则被认为是两条线段,否则是一条。

http://blog.csdn.net/viewcode/article/details/8090932

http://blog.csdn.net/zhaocj/article/details/40047397

int main()

{

Mat img = imread("D:\\pdf2jpg\\nn\\00010.jpg");

//GetRedComponet(img);

Mat contours,res;

Canny(img,contours,,);

cvtColor( contours, res, CV_GRAY2BGR );

vector lines;

HoughLinesP(contours, lines, , CV_PI/, , , );

for( size_t i = ; i < lines.size(); i++ )

{

Vec4i l = lines[i];

line(res, Point(l[], l[]), Point(l[], l[]), Scalar(,,), );

}

imwrite("D:\\dst1.jpg",res);

}

统计概论霍夫直线检测houghlinesP是一个改进,不仅执行效率较高,而且能检测到直线的两个端点。

思想:

先随机检测出一部分直线,然后将直线上点的排查掉,再进行其他直线的检测

1. 首先仅统计图像中非零点的个数,对于已经确认是某条直线上的点就不再变换了。

2. 对所以有非零点逐个变换到霍夫空间

a. 并累加到霍夫统计表(图像)中,并统计最大值

b. 最大值与阈值比较,小于阈值,则继续下一个点的变换

c. 若大于阈值,则有一个新的直线段要产生了

d. 计算直线上线段的端点、长度,如果符合条件,则保存此线段,并mark这个线段上的点不参与其他线段检测的变换

OpenCV-Python教程(9、使用霍夫变换检测直线)

相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV的霍夫变换 ...

OpenCV——霍夫变换(直线检测、圆检测)

x #include #include #include using namesp ...

Hough直线and圆环变换(如何检测直线、圆环)

1.霍夫变换 2.cv2.HoughLines() 返回值就是(ρ, θ).ρ 的单位是像素,θ 的单位是弧度.这个函数的第一个参 数是一个二值化图像,所以在进行霍夫变换之前要首先进行二值化,或者进行 ...

Python-Anaconda练习candy算子用于边缘提取,再用hough变换检测直线边缘

img: 待检测的图像. threshold: 阈值,可先项,默认为10 line_length: 检测的最短线条长度,默认为50 line_gap: 线条间的最大间隙.增大这个值可以合并破碎的线条. ...

hough变换检测直线和圆

图像测量和机器视觉作业: 提取图像中的直线和点的位置坐标,将其按一定顺序编码存入一文本文件,并在原图像上叠加显示出来. 下午实验了一下: 程序环境:vs2013(活动平台为x64)+opencv3.1 ...

matlab 霍夫变换—检测圆

function [hough_space,hough_circle,para] = hough_Circle(BW,step_r,step_angle,r_min,r_max,p) % %%%%%% ...

Python下opencv使用笔记(十一)(详解hough变换检测直线与圆)

http://blog.csdn.net/on2way/article/details/47028969 http://blog.csdn.net/mokeding/article/details/1 ...

第三章 霍夫变换(Hough Transform)

主要内容: 霍夫变换的作用 霍夫变换检测直线的原理 霍夫变换检测圆的原理 OpenCV中的霍夫变换 1.霍夫变换检测直线原理 霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直 ...

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

随机推荐

追踪记录每笔业务操作数据改变的利器——SQLCDC

对于大部分企业应用来用,有一个基本的功能必不可少,那就是Audit Trail或者Audit Log,中文翻译为追踪检查.审核检查或者审核记录.我们采用Audit Trail记录每一笔业务操作的基本信 ...

Ubuntu 更新源失败[GPG error]

对于错误 GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn't be verif ...

jquery插件之表格隔行变色并鼠标滑过高亮显示

该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现表格隔行变色,且鼠标移动在表格的某一行上时,该行能高亮显示.整体代码如 ...

学习笔记——Maven实战(十)Maven 3,是时候升级了

去年10月份Apache Maven发布了3.0正式版,而在上个月的22号,Eclipse基金会宣布了Eclipse 3.7(Indigo)的发布,该版本Eclipse最大的新特性之一就是集成了Mav ...

最简单的视音频播放示例9:SDL2播放PCM

本文记录SDL播放音频的技术.在这里使用的版本是SDL2.实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API.在Windows平台下,SDL封装了Direct3D这类的API ...

hibernate笔记加强版

hibernate 一. hibernate介绍 hibernate事实上就是ormapping框架,此框架的作用就是简单话数据库的操作. hibernate就是将用户提交的代码.參照持久化类配置文件 ...

win8.1 AMD 屏幕亮度无法调整

lenovo z465  AMD处理器. win8.1 pro系统   屏幕亮度无法调整解决办法:   1:当然是先去本地服务里禁用"Sensor Monitoring Service&qu ...

java 运算符的了解和运算符的优先级

Java 语言支持如下运算符: 算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 扩展赋值运算符:+=,-=,*=,/= 关系运算符: >,=,<=,==,! ...

POJ 2689 - Prime Distance - [埃筛]

题目链接:http://poj.org/problem?id=2689 Time Limit: 1000MS Memory Limit: 65536K Description The branch o ...

建立请求号 request

1:获取TR号(一般由团队的负责人创建,发出) 2:进入 i7p系统 3:点击process 4:输入tr号 5:选中 正确的请求号,右键> process item> add task ...

你可能感兴趣的:(霍夫变换检测圆c,语言)