Extrae todos los cuadros delimitadores usando OpenCV Python

Tengo una imagen que contiene más de un cuadro delimitador.
Libros en cajas delimitadoras

Necesito extraer todo lo que tiene cajas delimitadoras en ellos. Hasta ahora, de este sitio he recibido esta respuesta:

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

Funciona, sin embargo, solo obtiene uno. ¿Cómo debo modificar el código? Intenté ponerlo en el bucle para los contornos, pero aún escupe una imagen en lugar de varias.

Muchas gracias de antemano.

ahí va

 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)