我刚刚开始学习 OpenCV 编程。请问如何在OpenCV中识别直线和曲线?我的问题是我必须确定图像是否包含凸曲线或凹曲线(水平或垂直曲线)、垂直线、对角线或水平线。
在我的代码中,我使用 CvSetImageROI
获取图像的特定部分,然后我尝试根据所述线条/曲线识别每个部分。
OpenCV 中有可用的函数吗?非常感谢你的帮助。顺便说一下,我正在使用 Linux 和 C++。
最佳答案
霍夫变换 http://en.wikipedia.org/wiki/Hough_transform , http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm 是做这件事的标准方法。在其简单形式(在 OpenCV 中实现)中,它可以检测任意位置和角度的线以及线段。
看这里的例子 http://opencv.itseez.com/modules/imgproc/doc/feature_detection.html?highlight=hough#houghlinesp
对于曲线来说,检测过程稍微复杂一点,需要一般的霍夫变换 OCV中还没有,不过可以写成习题或者找个好的实现。 http://en.wikipedia.org/wiki/Generalised_Hough_transform描述它(简而言之)
关于image-processing - OpenCV 识别直线和曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046956/