[英]Python: raw image data to grayscale
我將原始圖像數據以這種格式存儲在文本文件中,我想將其制成2D數組並將其轉換為灰度。
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)
但是,這些方法都不起作用。 有沒有人有什么建議?
提前致謝。
如果我正確解釋了您想做的事,下面的程序可以做您想做的事;-)
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()
親切的問候
這是一種從文本整數到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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.