2016-06-19 6 views
0

Pythonで既存の2D配列からグレースケール画像を作成する際に問題があります。Pythonで既存の2D配列データからグレースケール画像を作成する方法

私が2D配列を持っていると仮定すると、次元504x896のXはunit8です。この2D配列からグレイスケール画像を作成するにはどうすればよいですか? OpenCVはその機能を提供するか、他の画像処理ライブラリを含める必要がありますか?


私はこれを試しましたが、何らかの理由で動作しませんでした。与えられた2次元配列

dim = z.shape 
h = dim[0] 
w = dim[1] 

copy_image = np.zeros((h,w,1), np.uint8) 
copy_image = z.copy(); 
cv2.imwrite("cpImage.bmp",copy_image) 
+1

http://stackoverflow.com/questions/37558523/converting-2d-numpy-array-of-grayscale-values-to-a-pil-image/37559440#37559440 – lsxliron

答えて

0

これは期待どおりに動作するはずです。私は両方の引数としてcv.CvtColorと同じ深さを持つ必要がありますFloat32を使用しています。

import numpy as np 
import cv2 
nArray = np.zeros((504, 896), np.float32) #Create the arbitrary input img 
h,w = nArray.shape 
cArray1 = cv2.CreateMat(h, w, cv2.CV_32FC3) 
cArray2 = cv2.fromarray(nArray) 
cv2.CvtColor(cArray2, cArray1, cv2.CV_GRAY2BGR) 
cv2.imwrite("cpImage.bmp", cArray1) 
関連する問題