gpt4 book ai didi

python - 从白皮书裁剪 Logo

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:23 24 4
gpt4 key购买 nike

我有一个庞大的图像数据集,在白纸上的任意位置都有一些 Logo 。如何使用 python 从图像中检索对象的坐标(左上角和右下角)?

例如,考虑这张图片 http://ak9.picdn.net/shutterstock/videos/5360279/thumb/3.jpg (忽略阴影)我想在图像中突出显示鸡蛋。

编辑:图像是高分辨率的并且数量非常多,因此迭代解决方案需要花费大量时间。我错过的一件事是图像以 1 位模式存储。所以我认为我们可以使用 numpy 获得更好的解决方案。

最佳答案

如果图片的其余部分是一种颜色,您可以比较每个像素并找到表示图片开始的不同颜色,如下所示请注意,我假设右上角是背景色,如果情况并非总是如此,请使用不同的方法(例如计数模式像素颜色)!:

import numpy as np
from PIL import Image
import pprint

def get_y_top(pix, width, height, background, difference):
back_np = np.array(background)
for y in range(0, height):
for x in range(0, width):
if max(np.abs(np.array(pix[x, y]) - back_np)) > difference:
return y

def get_y_bot(pix, width, height, background, difference):
back_np = np.array(background)
for y in range(height-1, -1, -1):
for x in range(0, width):
if max(np.abs(np.array(pix[x, y]) - back_np)) > difference:
return y

def get_x_left(pix, width, height, background, difference):
back_np = np.array(background)
for x in range(0, width):
for y in range(0, height):
if max(np.abs(np.array(pix[x, y]) - back_np)) > difference:
return x

def get_x_right(pix, width, height, background, difference):
back_np = np.array(background)
for x in range(width-1, -1, -1):
for y in range(0, height):
if max(np.abs(np.array(pix[x, y]) - back_np)) > difference:
return x

img = Image.open('test.jpg')
width, height = img.size
pix = img.load()
background = pix[0,0]

difference = 20 #or whatever works for you here, use trial and error to establish this number
y_top = get_y_top(pix, width, height, background, difference)
y_bot = get_y_bot(pix, width, height, background, difference)
x_left = get_x_left(pix, width, height, background, difference)
x_right = get_x_right(pix, width, height, background, difference)

使用此信息,您可以裁剪图像并保存:

img = img.crop((x_left,y_top,x_right,y_bot))
img.save('test3.jpg')

结果是: enter image description here

关于python - 从白皮书裁剪 Logo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49750470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com