cv::findContours(imgthreshold, RETR_TREE, CHAIN_APPROX_NONE);这句话哪里有问题
时间: 2024-04-23 19:26:26 浏览: 15
这句话似乎是使用了OpenCV库中的函数cv::findContours来查找图像中的轮廓,但是参数不太对。正确的语法应该是:
cv::findContours(imgthreshold, contours, hierarchy, RETR_TREE, CHAIN_APPROX_NONE);
其中,imgthreshold是二值化的图像,contours是存储返回的轮廓的向量,hierarchy是可选的输入参数,RETR_TREE表示检索所有的轮廓并重构嵌套轮廓的完整层次结构,CHAIN_APPROX_NONE表示存储所有的轮廓点,没有任何逼近。
相关问题
cv::findContours(imgcanny,imgthreshold, RETR_TREE, CHAIN_APPROX_NONE);这句话有什么错
这句话的第二个参数应该是一个存储轮廓的向量,而不是一个存储二值化结果的Mat。所以,应该按照以下方式更正:
```
std::vector<std::vector<cv::Point>> contours;
cv::findContours(imgcanny, contours, RETR_TREE, CHAIN_APPROX_NONE);
```
其中,imgcanny是Canny边缘检测的结果,contours是存储返回的轮廓的向量,RETR_TREE表示检索所有的轮廓并重构嵌套轮廓的完整层次结构,CHAIN_APPROX_NONE表示存储所有的轮廓点,没有任何逼近。
cv.findContours(binary, cv.RETR_TREE, cv.CHAIN_APPROX_NONE)
这行代码是用于在二值图像中寻找轮廓(contours)的函数,其中参数binary是输入的二值图像,cv.RETR_TREE是轮廓的检索模式,cv.CHAIN_APPROX_NONE是轮廓的近似方法。
cv.RETR_TREE表示检索所有的轮廓并且创建一个完整的层级结构,即每个轮廓有父子关系,用于建立轮廓之间的层级关系。
cv.CHAIN_APPROX_NONE表示存储所有的轮廓点,而不进行任何压缩或近似,即保留所有的像素点。