之前对标尺图片进行了颜色滤波,使得图像中只剩下了红色的刻度,那么接下来希望找到这些刻度,并得到它们之间的距离作为一个度量标准。
不过问题来了,经过滤波处理后得到的刻度并不是一条直线,看上去是一个矩形框框,如图
这个时候用cvHoughLines2来找直线效果可就很不好哦,因为都是矩形框框。
想到图形学课上说过有腐蚀Erode这个操作,所以试了一试:
opencv中的腐蚀函数为:
第三个参数为采用的模板,默认取0,则为3*3模板,最后一个参数为腐蚀的迭代次数,如果腐蚀效果不明显,可以增加腐蚀次数。
CVAPI(void) cvErode( const CvArr* src, CvArr* dst,
IplConvKernel* element CV_DEFAULT(NULL),
int iterations CV_DEFAULT(1) );
void Erode(IplImage *img)
{
<span style="white-space:pre"> </span>cvName