opencv笔记二十一(霍夫变换直线)

做霍夫变换之前记得提取图像边缘,是对图像边缘做霍夫变换

原理:

https://blog.csdn.net/ycj9090900/article/details/52944708

https://blog.csdn.net/abcjennifer/article/details/7448513


API:

HoughLines( 

InputArray src, // 输入图像,必须8-bit的灰度图像 

OutputArray lines, // 输出的极坐标来表示直线 

double rho, // 生成极坐标时候的像素扫描步长 

double theta, //生成极坐标时候的角度步长,一般取值CV_PI/180 

int threshold, // 阈值,只有获得足够交点的极坐标点才被看成是直线 

double srn=0;// 是否应用多尺度的霍夫变换,如果不是设置0表示经典霍夫变换 

double stn=0;//是否应用多尺度的霍夫变换,如果不是设置0表示经典霍夫变换 

double min_theta=0; // 表示角度扫描范围 0 ~180之间, 默认即可 

double max_theta=CV_PI ) // 一般情况是有经验的开发者使用,需要自己反变换到平面空间

HoughLinesP( 

InputArray src, // 输入图像,必须8-bit的灰度图像 

OutputArray lines, // 输出的极坐标来表示直线 

double rho, //生成极坐标时候的像素扫描步长 

double theta, //生成极坐标时候的角度步长,一般取值CV_PI/180 

int threshold, // 阈值,只有获得足够交点的极坐标点才被看成是直线 

double minLineLength=0;// 最小直线长度 

double maxLineGap=0;// 最大间隔 )


扩充知识点:

size_t:

size_t其实是一种类型,类似于无符号整形(unsignted int)。可以理解成unsignted int size,当unsignted int用就可以了。
size_t一般用于指明数一个组长度,所以必然是个正数。它有足够大的大小来储存可能的最大数组。比如要将下标赋值给数组a[array_size]的每个元素:
const size_t array_size=10;int a[array_size-1];for(size_t i=0;i<size_t;++i )a[i]=i;说到底,size_t 当unsigned int用好了。


Vector:https://www.cnblogs.com/youyoui/p/5779965.html

Vec4f :typedef Vec<float, 4>   

是一个四元素的容器,Vec类其实是元素较少的向量




猜你喜欢

转载自blog.csdn.net/qq_31647835/article/details/80922786
今日推荐