【发布时间】:2020-11-12 08:15:12
【问题描述】:
我有一组像下面这样的图像,其中每个图像都由实际的图像部分组成,周围有不同大小的黑色边框。我的目标是删除这些边框并仅提取图像,以后可以将其用于其他任务。
我尝试使用精明的边缘检测器来识别边界并仅从中获取图像,但是它没有按预期工作。
我也尝试过下面其他帖子中提到的技术,但这些在我的情况下也不起作用。
In [1]: from PIL import Image, ImageChops
In [3]: im = Image.open('iI3ZE.jpg')
In [4]: def trim(im):
...: bg = Image.new(im.mode, im.size, im.getpixel((0,0)))
...: diff = ImageChops.difference(im, bg)
...: diff = ImageChops.add(diff, diff, 2.0, -100)
...: bbox = diff.getbbox()
...: if bbox:
...: return im.crop(bbox)
上述查询的任何线索都会有所帮助。
【问题讨论】:
-
如果它总是在同一个位置,那么只需使用
new_im = im[y:y+h, x:x+w]裁剪图像,其中 x,y 是您想要的部分的左上角,w,h 是尺寸。跨度>
标签: python opencv image-processing