我使用完全相同的步骤来查找图像的轮廓,但我在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时的输出:
答案 0 :(得分:1)
注意:此图片会修改源图片。
由于opencv 3.2源图像未被此函数修改。
通常,您使用contours
和hierarchy
输出参数。由于后来的版本不再修改输入图像,我会考虑副作用,这不是有用的。