将像素值显示为图像

问题描述 投票:2回答:2

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

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

result = each_pixel * some calculation

result列表也有1.200.000值。

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

我怎样才能做到这一点?我想我们可以使用像colormap这样的东西,但我不确定。

python image numpy image-processing matplotlib
2个回答
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


3
投票

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

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

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