在Python中填充图像
我试图在所有边上添加列和行在Python中填充图像,python,image,numpy,image-processing,Python,Image,Numpy,Image Processing,我试图在所有边上添加列和行 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
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
两者都是相同的
。
现在,我正试图创建一个填充_数组
,方法是在顶部、底部和底部添加(size//2)行
(大小//2)列
左侧和右侧
大小
总是奇数
当我尝试填充时,我不明白为什么灰色图像没有广播到填充阵列中。
相反,它所做的是在该灰度图像范围内的所有像素上广播值255
,填充的行和列留空
我正在添加两张图片的截图,请看一看
您可以将
图像宽度/图像高度
除以并乘以常数
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)
输出:
这里的错误是,在定义填充数组时,我没有将数组的数据类型定义为int,默认情况下它是浮动的,这就是产生白色图像的原因,一旦我定义填充数组中的数据为int,一切都变好了。谢谢,但是我不想使用OpenCV。但是你将问题标记为
OpenCV
。请查看我的新答案。是的,非常感谢,但是你能找到并告诉我我的代码哪里出错了吗?我不理解你的代码。因此,我提出我的建议。