如何解决用Python填充图像
我正在尝试在所有侧面添加列和行。
padded_array = np.zeros([img.shape[0] + (size//2) + (size//2),img.shape[1] + (size//2) + (size//2)])
padded_array[size//2 : padded_array.shape[0]-(size//2),size//2 : padded_array.shape[1]-(size//2)] = gray
在这里,img
是原始图像,gray
是灰度图像,两者的shape
都是same
。
现在,我尝试通过在顶部和下方添加padded_array
来创建(size//2) rows
,
左右(size//2) columns
。
size
始终为odd
。
当我尝试填充时,我不明白为什么灰色图像没有广播到填充数组中。
相反,它正在做的是在该灰度图像范围内的所有像素上广播值255
,并且填充的行和列保留为空白。
我正在添加两个图像的屏幕截图,请看一下。
- 灰度图像是:
- 广播灰色后的填充图像为:
解决方法
您可以将image width / image height
除以一个常数。
import matplotlib.pyplot as plt
def pad(image,h=2):
w = (image.shape[0]/image.shape[1]) * h
plt.figure(figsize=(w,h))
plt.imshow(im)
plt.axis('off')
plt.show()
im = plt.imread('blur.png')
pad(im)
输出:
,这里的错误是在定义padded_array
时,我没有将数组的数据类型定义为int,默认情况下它是float的,这就是白色图像的原因,因为我定义了数据在padded_array中为int时,一切都很好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。