2014-01-14 142 views
5

我有一個包含多個邊界框的圖像。
Books in Bounding Boxes使用OpenCV提取所有邊界框Python

我需要提取其中有邊界框的所有東西。迄今爲止,從這個網站,我已經得到了這樣的回答:

y = img[by:by+bh, bx:bx+bw] 
cv2.imwrite(string + '.png', y) 

它的工作原理,但它只是變得之一。我應該如何修改代碼?我試圖把它放入輪廓中,但它仍然會噴出一個圖像而不是多個圖像。

非常感謝你提前。

回答

16

有你有云:

import cv2 

im = cv2.imread('c:/data/ph.jpg') 
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) 
contours,hierarchy = cv2.findContours(gray,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) 
idx =0 
for cnt in contours: 
    idx += 1 
    x,y,w,h = cv2.boundingRect(cnt) 
    roi=im[y:y+h,x:x+w] 
    cv2.imwrite(str(idx) + '.jpg', roi) 
    #cv2.rectangle(im,(x,y),(x+w,y+h),(200,0,0),2) 
cv2.imshow('img',im) 
cv2.waitKey(0)