Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV 3.0活动轮廓(snake)算法_C++_Opencv_Object Detection_Opencv Contour - Fatal编程技术网

C++ OpenCV 3.0活动轮廓(snake)算法

C++ OpenCV 3.0活动轮廓(snake)算法,c++,opencv,object-detection,opencv-contour,C++,Opencv,Object Detection,Opencv Contour,当前情况:我想检测图像中的矩形(或正方形),这些矩形的轮廓不一致。就像一个棋盘,外部轮廓有一个整体 可能的解决方案:我正在尝试实现一个活动轮廓算法,该算法将帮助我检测对象的外部轮廓。我知道对象外部的一些点,只要对象适合,它们就可以用来收缩和拟合这些点 搜索:我找到了旧版openCV的cvSnakeImage函数,该函数未被维护,不应再使用。我已经发现了一个活动轮廓C++实现,它也使用了一个旧的OpenCV和Boost库。我已经尝试过了,但无法构建代码 本主题的其他文章: 问题:OpenC

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

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

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

  • 本主题的其他文章:
问题:OpenCV中当前是否有活动轮廓算法的实现?是否有一个最佳的实施方案,我应该在哪里投入时间来理解实施方案

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


对于您上传的图像,简单的轮廓边界框并集应该可以得到您想要的结果。”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)

cvSnakes在OpenCV3中消失了。您可能应该发布一些图像,以及您期望的结果。很可能你试图以错误的方式解决这个问题。