1、把图片转化为灰度图:g = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
2、把图片转化为二值图,要求所有的物体都是黑色:ret,th = cv2.threshold(imgray,236,255,0)
3、检测二值图片的物体轮廓:img, cts, hi = cv2.fi艘绒庳焰ndContours(th,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
4、注意,图中所有的物体没有空腔,所以,轮廓数-1就是物体的数目。print(len(罕铞泱殳cts)-1)轮廓数为什么要减1呢?因为整个图也有一个轮廓。
5、在原图中画出所有的轮廓。for i in range(0,len(cts)): x巳呀屋饔, y, w, h = cv2.boundingRect(cts[i]) cv2.rectangle(足毂忍珩im, (x,y), (x+w,y+h), (0,0,100), 1)
6、如果图中出现了有空腔的物体,如下图。
7、那么,识别出来的物体就莫名其妙的多了。
8、轮廓图如下图所示。