请教findContours返回的hierarchy的用法?
Closed this issue · 2 comments
ghoukhj commented
请教findContours返回的hierarchy的用法?
sfantree commented
API使用者有必要学习怎么查询,每个API每个参数都要求有例程不现实。尤其是跨语言的库,C++的注释和例程已经足够详细
lib/cv2/_.aardio 第374行,参考源码实现
findContours = function(src,mode=3/*_CV2_RETR_TREE*/,method=2/*_CV2_CHAIN_APPROX_SIMPLE*/){
var contours = ..cv2.vector.mat();
var hierarchy = ..cv2.mat()
var err = dll.imgproc_findContours1_OutputArray(src.cvPtr,contours,hierarchy.cvPtr,mode,method,::POINT())
return src,contours,hierarchy;
}
当然还有不少要调参的地方
import cv2
var img = cv2.imread("./images/Lena.jpg",1/*_CV2_IMREAD_COLOR*/)
var dst = cv2.cvtColor(img, 6 /*CV_BGR2GRAY = 6*/);
cv2.imshow( "cvtColor", dst )
var src,contours,hierarchy = cv2.findContours(dst);
cv2.imshow( "findContours", src )
cv2.waitKey(0)
xuncv commented
findContours 函数原型在C++中有很多重载。我采用了其中比较简单和常用的api。hierarchy 只有在需要轮廓父子关系的时候才用,其增益效果远没有图像预处理后来的多。aardio中返回的是hierarchy 是一个Mat对象,其解析意义并不大