将像素值显示为图像

时间:2017-06-26 08:13:23

标签: python image numpy image-processing matplotlib

所以我有一个 1280 × 960 .TIF 格式图片。我提取了 1.200.000 像素的所有像素。

之后,我使用图像上的每个像素进行了一些计算,让我们说:

result = each_pixel * some calculation

result列表也有1.200.000值。

现在我要做的是显示两个不同的图像,第一个是原始像素值,表示原始图像,第二个是result列表,这意味着计算每个像素的结果显示在原始图像的完全相同的x和y坐标中。

我该怎么做?我想我们可以使用像colormap这样的东西,但我不确定。

2 个答案:

答案 0 :(得分:3)

matplotlib这样做的方法是:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

plt.imsave('filename.png', np.array(result).reshape(1280,960), cmap=cm.gray)
plt.imshow(np.array(result).reshape(1280,960))

注意:您也可以使用glumpy

答案 1 :(得分:3)

您可以通过更改其shape属性来重新整形一维数组result

import matplotlib.pyplot as plt
from skimage import io

image = io.imread('https://i.stack.imgur.com/5KUry.png')

each_pixel = image.ravel()
some_calculation = 64

result = each_pixel // some_calculation
result.shape = image.shape

fig, (ax0, ax1) = plt.subplots(1, 2)
ax0.imshow(image, cmap='gray')
ax0.axis('off')
ax0.set_title('image')
ax1.imshow(result, cmap='gray')
ax1.axis('off')
ax1.set_title('result')
plt.show()

lions