排序裁剪轮廓python和opencv

时间:2015-04-15 19:29:57

标签: python

contours, hierarchy = cv2.findContours(opening,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)


idx =0 
for cnt in contours:
    if cv2.contourArea(cnt) >3000:
        idx += 1
        x,y,w,h = cv2.boundingRect(cnt)
        roi=img[y:y+h,x:x+w]
        cv2.imwrite(str(idx) + ".jpg", roi)
        cv2.rectangle(img,(x,y),(x+w,y+h),(200,0,0),2)

它有效,但作物轮廓随机保存。 我需要将保存的裁剪图像从低到高视为X值。

1 个答案:

答案 0 :(得分:0)

轮廓以(近似)增加Y顺序生成 - 因此边界框的X坐标将是伪随机的(仅取决于图像)

你必须累积BoundingRects,按x排序然后制作区域。

请参阅How to sort (list/tuple) of lists/tuples?