我需要帮助编写一个代码,该代码使用一个开放的 cv 库来读取图像并在不改变任何像素质量的情况下写入完全相同的图像。我测试了看问题是来自 imread 还是 imwrite,测试后我发现是 imwrite。出于某种原因,在我写入图像并将其保存在我的计算机上之后,当我比较原始图像和保存的图像时,清晰度有一个巨大的变化。保存的图像与原始图像相比模糊,但位、平均值、中值、最小值和最大值完全相同。这只是某种像素清晰度降低。
我正在使用 tifffile 库,这是迄今为止我发现的适用于 16 位 tiff 图像的最好的库。第一部分只是读取图像,第二部分是制作副本,第三部分是使用 imwrite。终端吐出相同的值,但保存的图像对眼睛来说更模糊。
使用这个:
import tifffile
import numpy as np
image = tifffile.imread('example.tif')
min_value = np.min(image)
max_value = np.max(image)
mean_value = np.mean(image)
print('Min pixel value:', min_value)
print('Max pixel value:', max_value)
print('Mean pixel value:', mean_value)
print('Image size:', image.size)
print('Image type:', image.dtype)
image_copy = image.copy()
min_value1 = np.min(image_copy)
max_value1 = np.max(image_copy)
mean_value1 = np.mean(image_copy)
print('Min pixel value:', min_value1)
print('Max pixel value:', max_value1)
print('Mean pixel value:', mean_value1)
print('Image size:', image_copy.size)
print('Image type:', image_copy.dtype)
tifffile.imwrite('image_saved.tif', image)
image_save = tifffile.imread('image_saved.tif')
min_value2 = np.min(image_save)
max_value2 = np.max(image_save)
mean_value2 = np.mean(image_save)
print('Min pixel value:', min_value2)
print('Max pixel value:', max_value2)
print('Mean pixel value:', mean_value2)
print('Image size:', image_save.size)
print('Image type:', image_save.dtype)
我希望保存的图像与原始图像完全相同,而不仅仅是相同的值。