【发布时间】:2021-01-10 18:07:58
【问题描述】:
我有一个图像数据集,都是这样的。
任务是尽可能裁剪图像周围的空白区域,并返回包含较少白色周围图像的图像:
def crop_object(img):
lst = []
# hold min and max of height
for i in range(img.shape[0]):
r = img[:,i,0]
g = img[:,i,1]
b = img[:,i,2]
if (np.min(r) != 255) or (np.min(g) != 255) or (np.min(b) != 255):
lst.append(i)
a1 = min(lst)
a2 = max(lst)
for i in range(img.shape[1]):
r = img[i,:,0]
g = img[i,:,1]
b = img[i,:,2]
if (np.min(r) != 255) or (np.min(g) != 255) or (np.min(b) != 255):
lst.append(i)
a3 = min(lst)
a4 = max(lst)
return img [a3:a4, a1:a2, :]
我想要一种更 Pythonic 的方式来处理这个问题。比如更少的代码和更快的运行。
你们能帮帮我吗?
【问题讨论】:
-
请注意,您应该使用
img [a3:a4+1, a1:a2+1, :]而不是使用完整范围。
标签: python image numpy opencv optimization