为什么裁剪后的图像颜色会变深?
Why cropped images color go deeper?
我正在尝试针对一些病理图像测试我的模型。我需要将它们裁剪成小块。
这是我的裁剪代码。
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.
我的模型是颜色敏感的,但我不知道为什么一个数字矩阵有不同程度的亮度。
非常感谢您的指点。
这里的罪魁祸首是 scipy.misc.toimage
函数。根据 documentation of toimage
, this function uses bytescale
中的警告,用于缩放数组值以使用字节的完整范围,即从 0 到 255。这就是裁剪图像中的颜色具有更好对比度的原因。
如果 image
变量是类数组对象(numpy
数组等),则可以使用 scipy.misc.toimage
后接 save
而不是其他一些将图像保存到磁盘的方法,例如 OpenCV 的 scipy.misc.imsave
of SciPy or imwrite
函数。
我正在尝试针对一些病理图像测试我的模型。我需要将它们裁剪成小块。
这是我的裁剪代码。
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.
我的模型是颜色敏感的,但我不知道为什么一个数字矩阵有不同程度的亮度。
非常感谢您的指点。
这里的罪魁祸首是 scipy.misc.toimage
函数。根据 documentation of toimage
, this function uses bytescale
中的警告,用于缩放数组值以使用字节的完整范围,即从 0 到 255。这就是裁剪图像中的颜色具有更好对比度的原因。
如果 image
变量是类数组对象(numpy
数组等),则可以使用 scipy.misc.toimage
后接 save
而不是其他一些将图像保存到磁盘的方法,例如 OpenCV 的 scipy.misc.imsave
of SciPy or imwrite
函数。