我运行canny函数,结果如下:
我想研究两个区域“线”,所以我想裁剪它们:比如
顺便说一句,“线”可以在不同的位置:就像
我不是要求代码,而只是为了我的创意怎么做 提前致谢 !
答案 0 :(得分:1)
缩小边缘图像并使其模糊,使边缘像素大致形成两条细长的连续线 (您可能希望对原始图像进行缩放和模糊,而不是使用精细边缘图像,检查哪种效果最佳):
然后使用hough transform
检测这些行如果您的霍夫变换报告每个实线的多个匹配,您可以过滤掉靠近的匹配,或者将图像缩小一些,或者减少霍夫变换的分辨率参数
一旦你有了这些线条,就用距离线去掉每个像素> epsilon
替代建议:
Morphological closing:将边缘图像扩张几次,使边缘像素形成连续的斑点。侵蚀图像几次。
这个blob的Detect the contours与cv :: findcontours。
使用cv :: approxPolyDP简化轮廓。
如果你只想要两条线的边界轮廓,你就完成了。否则,遍历每个轮廓线段,找到两个长线段之间的直角转弯,以找到分割轮廓的位置,如果要分开线条。