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取消坐标?_C++_Opencv - Fatal编程技术网

C++ 如何使用OpenCV取消坐标?

C++ 如何使用OpenCV取消坐标?,c++,opencv,C++,Opencv,我的要求是从图像中检索所有轮廓及其坐标。 目前,我正在使用cvFindContours查找所有轮廓,然后使用CV_GET_SEQ_ELEM/cvGetSeqElem迭代每个轮廓,以检索所有坐标 现在出现了一个新的要求,根据轮廓的大小,需要比实际值少x像素 例如。 如果发现圆的半径为100像素,则返回的坐标应为97 3像素。简而言之,将返回的任何轮廓或形状的x像素将小于实际轮廓 是否有任何API可以这样做。与FindContents类似,其内部比实际点多3个像素 第一幅图像是源图像,第二幅带有黄色

我的要求是从图像中检索所有轮廓及其坐标。 目前,我正在使用cvFindContours查找所有轮廓,然后使用CV_GET_SEQ_ELEM/cvGetSeqElem迭代每个轮廓,以检索所有坐标

现在出现了一个新的要求,根据轮廓的大小,需要比实际值少x像素

例如。 如果发现圆的半径为100像素,则返回的坐标应为97 3像素。简而言之,将返回的任何轮廓或形状的x像素将小于实际轮廓

是否有任何API可以这样做。与FindContents类似,其内部比实际点多3个像素

第一幅图像是源图像,第二幅带有黄色部分的图像应作为坐标返回

谢谢,
Unni

由于没有给出其他建议,以下方法解决了我的问题:

迭代每个轮廓 在相同图像的新空白克隆中绘制每个轮廓,线条更粗。 找到粗线的内轮廓 findcontour 等高线中的foreach等高线 克隆图像 在图像中设置0 具有像素宽度n的轮廓的drawcontours findcontour 取内轮廓并保存以备日后使用 下一个轮廓

克隆图像 在图像中设置0 使用存储的等高线绘制等高线
结束

我认为您应该添加一个函数,该函数将使用x/contour_长度或其他比率调整找到的轮廓大小…仍然不知道如何执行。任何其他的指示都是受欢迎的。