OpenCV cvFindContour()方法遵循8个连接的邻居规则获取连接的组件。有什么方法可以将其更改为4个连通的邻居规则-检查连通性时将不考虑角单元。
显然,Mathematica使用简单的CornerNeighbors->False
shown here on SO做到了这一点。
在OpenCV中可以这样做吗?即使我们实际上要更改cv * .h文件中的函数定义(这很麻烦),也可以使用任何指针吗?
最佳答案
恐怕这是不可能的,您可以考虑建议对opencv进行代码更改,并添加一个允许这样做的标志。当前在此文件中:
http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/modules/imgproc/src/contours.cpp
有一个名为icvCodeDeltas的数组,它确定所有邻居。您可以检查它的使用位置并添加一个
static const CvPoint icvCodeDeltas4[4] = { {1, 0}, {0, -1}, {-1, 0}, {0, 1} };
virtual CvPoint icvCodeDeltas[8];
icvCodeDeltas = { {1, 0}, {0, -1}, {-1, 0}, {0, 1}, {1, 0}, {0, -1}, {-1, 0}, {0, 1} };
https://stackoverflow.com/questions/6951483/
相关文章:
python - 来自Image的Python OpenCV cvCreateStructuring
image-processing - 以下用于图像调整大小的 c++ 双三次插值代码有什么问题
docker - chown : changing ownership of '/var/lib/m
vb.net - 如何从VB.net轻松调用IronPython函数?
exception - openNI干扰cvCreateCameraCapture()
opencv - 段错误 OpenCV/Facedetect.c/CentOS 6 64Bit