gpt4 book ai didi

c++ - OpenCV 3.0 主动轮廓(蛇形)算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:15:31 27 4
gpt4 key购买 nike

当前情况:我想检测图像中的矩形(或正方形),这些矩形的轮廓并不完全一致。就像棋盘,外轮廓有整体。

可能的解决方案:我正在尝试实现主动轮廓算法,它应该可以帮助我检测物体的外部轮廓。我知道物体外面的一些点,只要物体适合它就可以用来收缩和拟合这些点。

搜索: 我找到了一个旧版openCV的cvSnakeImage函数,该函数已经不再维护,不应该再使用了。我找到了一个主动轮廓 C++ 实现,它也使用了一个旧的 openCV 和 boost 库。我试过但无法构建代码。 HiDiYANG/ActiveContour

问题: OpenCV 中是否有可用的事件轮廓算法的当前实现?是否有可用的最佳实现,我应该花时间了解实现?

示例图片:我有第一张图片,灰色边框上有点,我想得到红色矩形(第二张图片)。

Example Image enter image description here

最佳答案

对于您上传的图像,轮廓边界框上的简单并集应该会为您提供所需的结果。 'bb_union' 是您需要自己编写的函数。

import cv2

img = cv2.imread('path to your image') # BGR image
im = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
im = 255 - im # your contours are black, so invert the image
_, contours, hierarchy = cv2.findContours(img, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
bb = None
for cnt in contours:
rect = cv2. boundingRect(cnt)
if (bb is None):
bb = rect
continue
bb = bb_union(rect, bb)
cv2.rectangle(img, bb, (0,0,255), 2)

关于c++ - OpenCV 3.0 主动轮廓(蛇形)算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34176022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com