Проблема в том, что getbbox()
обрезает черные границы, из документов: Calculates the bounding box of the non-zero regions in the image
.
import Image
im=Image.open("flowers_white_border.jpg")
print im.format, im.size, im.mode
print im.getbbox()
# white border output:
JPEG (300, 225) RGB
(0, 0, 300, 225)
im=Image.open("flowers_black_border.jpg")
print im.format, im.size, im.mode
print im.getbbox()
# black border output:
JPEG (300, 225) RGB
(16, 16, 288, 216) # cropped as desired
Мы можем легко исправитьбелые границы, сначала инвертируя изображение, используя ImageOps.invert
, а затем используйте getbbox()
:
import ImageOps
im=Image.open("flowers_white_border.jpg")
invert_im = ImageOps.invert(im)
print invert_im.getbbox()
# output:
(16, 16, 288, 216)