所以我试图获取图像的轮廓,但它似乎是错误的数据类型,我收到了这个错误:cv2.error:OpenCV(4.2.0)/Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/contours.cpp:197:错误:(-210:不支持的格式或格式组合) [开始]FindContours 在 mode != CV_RETR_FLOODFILL 时仅支持 CV_8UC1 图像,否则仅在函数 'cvStartFindContours_Impl' 中支持 CV_32SC1 图像我读到这可能是图像不是二进制的问题,但是在我的情况下,我已经通过阈值转换了图像: im = cv2.imread("picture.jpg") cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) (thresh, im_t) = cv2.threshold(im, 160, 255, cv2.THRESH_BINARY) im_tb = cv2.convertScaleAbs(im_t) #this does not seem to help either (contours, hierarchy) = cv2.findContours(im_tb,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)谢谢您的帮助
1 回答

慕少森
TA贡献2019条经验 获得超9个赞
代替
cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
你应该使用
im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
否则,转换结果将被丢弃,您仍然拥有 3 通道 RGB 图像。
添加回答
举报
0/150
提交
取消