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

问题描述 投票:0回答:1

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

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)

left is orignal image,right is cropped image.

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

谢谢您的指示。

python crop
1个回答
0
投票

罪魁祸首是scipy.misc.toimage功能。根据documentation of toimage中的警告,此函数使用toimage缩放数组值以使用字节的整个范围,即从0到255。这就是为什么裁剪后的图像中的颜色具有更好的对比度。

如果bytescale变量是类似数组的对象(bytescale数组等),则可以使用其他方法将图像保存到磁盘上,而不是使用imagenumpy SciPy的scipy.misc.toimage或OpenCV的save功能。

© www.soinside.com 2019 - 2024. All rights reserved.