在 opencv2 和 opencv3 中使用 findContours 时的输出差异
output differences when using findContours in opencv2 and opencv3
我正在使用完全相同的步骤来查找图像的轮廓,但我在 Opencv 2.4.8 和 Opencv 3.2 中得到了两个不同的结果!有人知道为什么吗?
程序如下:
std::vector<std::vector<cv::Point> > contours;
std::vector<cv::Vec4i> hierarchy;
cv::imwrite("binImageInB.jpg", binImageIn);
// find contour of the binary image
cv::findContours( binImageIn, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) ); // Find the contours in the image // save
cv::imwrite("binImageIn.jpg", binImageIn);
输入图像为:
使用opencv 2.4.8时的输出:
以及使用Opencv3.2时的输出:
Note: Source image is modified by this function.
Since opencv 3.2 source image is not modified by this function.
通常,您使用 contours
和 hierarchy
输出参数。由于以后的版本不再修改输入图像,我认为这是一个副作用,没有用。
我正在使用完全相同的步骤来查找图像的轮廓,但我在 Opencv 2.4.8 和 Opencv 3.2 中得到了两个不同的结果!有人知道为什么吗? 程序如下:
std::vector<std::vector<cv::Point> > contours;
std::vector<cv::Vec4i> hierarchy;
cv::imwrite("binImageInB.jpg", binImageIn);
// find contour of the binary image
cv::findContours( binImageIn, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) ); // Find the contours in the image // save
cv::imwrite("binImageIn.jpg", binImageIn);
输入图像为:
使用opencv 2.4.8时的输出:
以及使用Opencv3.2时的输出:
Note: Source image is modified by this function.
Since opencv 3.2 source image is not modified by this function.
通常,您使用 contours
和 hierarchy
输出参数。由于以后的版本不再修改输入图像,我认为这是一个副作用,没有用。