为什么裁剪的图像颜色更深?



我正在尝试测试我的模型以获取一些病理图像。我需要将它们裁剪成小块。
这是我的裁剪代码。

def crop_to_four_with_cropSize(image, crop_sz=None):
if crop_sz == None:
crop_sz = image.shape[0] // 2
img_sz = image.shape[0]
y = 0
x = 0
h = crop_sz
w = crop_sz
image_crop_1 = image[y:y + h, x:x + w, :]
image_crop_2 = image[-h:, x:x + w, :]
image_crop_3 = image[y:y + h, -w:, :]
image_crop_4 = image[-h:, -w:, :]
return (image_crop_1, image_crop_2, image_crop_3, image_crop_4)

以下是我用于保存的方法。

def save_to_file(image, name, path='./'):
if not os.path.exists(path):
os.makedirs(path)
full_name = os.path.join(path, name)
scipy.misc.toimage(image).save(full_name)

左边是原始图像,右边是裁剪图像。

我的模型对颜色敏感,但我不知道为什么一个数字矩阵具有不同程度的亮度。

我会感谢您的指示。

这里的罪魁祸首是scipy.misc.toimage函数。根据toimage文档中的警告,此函数使用bytescale来缩放数组值以使用字节的完整范围,即从0到255。这就是为什么裁剪图像中的颜色具有更好的对比度的原因。

如果image变量是一个类似数组的对象(numpy数组等(,那么您可以使用其他方法将图像保存到磁盘,例如 SciPy 的scipy.misc.imsave或 OpenCV 的imwrite函数,而不是使用scipy.misc.toimage后跟save

的。

最新更新