2013-09-08 11 views
6

640 x 480 픽셀 정보를 각 픽셀마다 8 비트 씩 처리하는 방법을 알 수 없습니다. (회색 이미지)Opencv Python raw 이미지 표시

이미지를 표시하려면 np 배열에서 Mat 형식으로 이동해야합니다.

#!/usr/bin/python 
import numpy as np 
import cv2 
import sys 
# Load image as string from file/database  
fd = open('flight0000.raw') 
img_str = fd.read() 
fd.close() 

img_array = np.asarray(bytearray(img_str), dtype=np.uint8) 

img = ... Conversion to Mat graycolor 

cv2.imshow('rawgrayimage', img) 
cv2.waitKey(0) 

너무 cv, cv2와 혼동 스럽습니다. 나는 잠시 동안 노력했지만 해결책을 찾지 못했습니다.

답변

4

,

그러나 파일이 NumPy와 파이썬으로 열고 구문 분석 할 수

import numpy as np 
fd = open('flight0000.raw', 'rb') 
rows = 480 
cols = 640 
f = np.fromfile(fd, dtype=np.uint8,count=rows*cols) 
im = f.reshape((rows, cols)) #notice row, column format 
fd.close() 

이 직접 OpenCV의 조작 할 수있는 NumPy와 배열한다

import cv2 
cv2.imshow('', im) 
cv2.waitKey() 
cv2.destroyAllWindows() 
+0

참고 : - 카운트 인수를 수정하고 컬러 이미지에 따라 기능을 바꿀 내 예는 그레이 스케일 이미지를 구문 분석 – DanGoodrick

-3
그냥 예를 들어 당신이 'PNG'파일 (각 픽셀 32 비트 컬러 이미지)로 '원시'이미지를 저장하려면

:

import numpy as np 
import matplotlib.pyplot as plt 

img = np.fromfile("yourImage.raw", dtype=np.uint32) 
print img.size #check your image size, say 1048576 
#shape it accordingly, that is, 1048576=1024*1024 
img.shape = (1024, 1024) 

plt.imshow(img) 
plt.savefig("yourNewImage.png") 
파일이 OpenCV의 see imread에서 지원되지 않습니다 .RAW
0
#!/usr/bin/python 
#code to display a picture in a window using cv2 
import cv2 

cv2.namedWindow('picture',cv2.WINDOW_AUTOSIZE) 
frame=cv2.imread("abc.jpg") 
cv2.imshow('picture',frame) 
if cv2.waitKey(0) == 27: 
     cv2.destroyAllWindows() 
관련 문제