【问题标题】:Python: raw image data to grayscalePython:原始图像数据转灰度
【发布时间】:2014-09-27 18:58:24
【问题描述】:

我将原始图像数据存储在一个文本文件中,格式如下,我想将其设为二维数组并将其转换为灰度。

0
0
0
0
24
243
227
223
224
225
227
228
228

我想做的是获取这些数据,将其转换为灰度,然后显示图像。我的计划是使用 numpy ......我在 matlab 中有这个工作,但我很难在 python 中实现它

我已尝试执行以下操作:

import numpy as np
from PIL import Image
from pylab import *

ROWS = 144
COLUMNS = 175
raw_image = []

lines = [line.strip().split(',') for line in open('CAMERA.txt')

for i in lines:
    raw_image.append(i)

mat_image = np.zeros((ROWS, COLUMNS), dtype = int)

for i in rage(ROWS):
    for j in range(COLUMNS):
        mat_image.itemset(i, j, raw_image[(i-1)*COLUMNS + j])

plt.gray()
axes = app.image.add_subplot(111)
self.im = Image.fromarray(mat_image)
axes.imshow(self.im)
app.imageCanvas.draw()

我也试过这样做:

np.reshape(raw_image, ROWS, COLUMNS)

但是,这些方法都不起作用。有没有人有什么建议?

提前致谢。

【问题讨论】:

  • 我读了你的问题,但我不完全理解你的问题是什么,所以也许你可以澄清一下(有什么问题?发布堆栈跟踪)。如果您阅读以下page,也许会有所帮助。它是使用 matplotlib 绘制图像(也是灰度)的教程。

标签: python numpy reshape grayscale imshow


【解决方案1】:

这是一个非常简单的方法,可以将文本整数转换为适合我的 PIL 图像:

import numpy as np
from PIL import Image

ROWS = 50
COLUMNS = 50

# greyValues.txt is 2500 RGB values 0-255 one per line
arr = np.genfromtxt('greyValues.txt', dtype=np.int8)

arr.shape = (ROWS, COLUMNS)

img = Image.fromarray(arr, 'L')
img.show()
img.save("textimage.jpg")

【讨论】:

    【解决方案2】:

    如果我正确地解释了你想做的事情,下面的程序可以做你想做的事;-)

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    if __name__=='__main__':
    
        rows = 144
        columns = 175
    
        camera_image = np.loadtxt(r'path/to/filename')
        if(not camera_image.size == rows * columns):
            raise Exception('Size mismatch!')
    
        my_image = np.reshape(camera_image, (rows, columns)) / 255.0
    
        figure = plt.figure()
        axes = figure.add_subplot(1, 1, 1)
    
        axes.imshow(my_image)
    
        plt.show()
    

    亲切的问候

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2022-07-22
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多