我有此分配,其中一个黑白图像可以由一个数组表示,其中数组中的值表示灰度等级,例如white = 0,black = 1,灰度等级是介于0和1之间的数字。图像具有固定的背景色,因此可以通过删除具有恒定颜色的图像外部部分来裁剪图像。
我想创建一个函数,该函数将表示黑白图像的数组以及表示背景颜色的 0 到 1 之间的数字作为输入。该函数必须返回裁剪后的图像,其中所有值等于给定背景色的前,后行和列都将被删除。
我试过这个:
def imageCrop(img_in,background):
for i in range(len(img_in)):
if np.sum(img_in[i,:])==background:
img_out= np.delete(img_in,img_in[i,:],axis=1)
elif np.sum(img_in[-i,:])==background:
img_out=np.delete(img_in,img_in[-i,:],axis=1)
elif np.sum(img_in[:,i])==background:
img_out= np.delete(img_in,img_in[:,i],axis=0)
elif np.sum(img_in[:,-i])==background:
img_out=np.delete(img_in,img_in[:,-1])
return img_out
输入是:
img_in = np.array([[0, 1, 0, 0.5, 0, 0],[0, 0.5, 0, 0, 0, 0],[0, 0.3, 0, 0.3, 0, 0],[0, 0, 0, 0, 0, 0]])
background = (0.0)
输出应该是:
[[1,0,0.5],[0.5,0,0],[0.3,0,0.3]]
所以与背景总和相同的每一行或每一列都将被删除
现在我的输出是:
[[1,0,0.5,0,0],[0.5,0,0,0,0],[0.3,0,0.3,0,0],[0,0,0,0,0]]
汪汪一只猫
芜湖不芜
慕标5832272
相关分类