在 python 中创建填充图像
Create a padded image in python
我有一个灰度图像(称为输入),我正在尝试在图像周围添加 1px 填充(仅由 0 组成)以应用滤镜:
padded = np.zeros((input.shape[0]+2, input.shape[1]+2), dtype=int)
padded[1:-1, 1:-1] = input[:,:]
但结果的对比度不如原来的。为什么?
这是原图:
这是带边框的图片:
如果我不使用 zeros 函数而是使用 once 函数并将矩阵乘以 255,我会得到一个甚至不同的图像。我不明白为什么我只是将一张图片复制到另一张图片。
X : array-like or PIL image
The image data. Supported array shapes are:
- (M, N): an image with scalar data. The values are mapped to colors using normalization and a colormap. . . .
标准化意味着颜色被“分散”,最小值是黑色,最大值是白色。所以那些 np.zeros
正在制作最小值 0
(和黑色边框)并使其他一切更轻以补偿。这应该可以修复它(我认为)
padded = np.pad(input,
pad_width = 1,
mode = 'minimum') # or mode = "maximum' for a white border
如果你绝对需要0
的边框,你可以这样做:
padded = np.pad(input - input.min(),
pad_width = 1,
mode = 'constant')
这改变了你的原始图片的范围开始0
,所以归一化应该是一样的。
我有一个灰度图像(称为输入),我正在尝试在图像周围添加 1px 填充(仅由 0 组成)以应用滤镜:
padded = np.zeros((input.shape[0]+2, input.shape[1]+2), dtype=int)
padded[1:-1, 1:-1] = input[:,:]
但结果的对比度不如原来的。为什么? 这是原图:
这是带边框的图片:
如果我不使用 zeros 函数而是使用 once 函数并将矩阵乘以 255,我会得到一个甚至不同的图像。我不明白为什么我只是将一张图片复制到另一张图片。
X : array-like or PIL image
The image data. Supported array shapes are:
- (M, N): an image with scalar data. The values are mapped to colors using normalization and a colormap. . . .
标准化意味着颜色被“分散”,最小值是黑色,最大值是白色。所以那些 np.zeros
正在制作最小值 0
(和黑色边框)并使其他一切更轻以补偿。这应该可以修复它(我认为)
padded = np.pad(input,
pad_width = 1,
mode = 'minimum') # or mode = "maximum' for a white border
如果你绝对需要0
的边框,你可以这样做:
padded = np.pad(input - input.min(),
pad_width = 1,
mode = 'constant')
这改变了你的原始图片的范围开始0
,所以归一化应该是一样的。