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值。
答案 0 :(得分:0)
轮廓以(近似)增加Y顺序生成 - 因此边界框的X坐标将是伪随机的(仅取决于图像)
你必须累积BoundingRects,按x排序然后制作区域。