Opencv Python显示原始图像

mgo*_*ert 10 python opencv numpy image type-conversion

我无法弄清楚如何显示原始图像,其中包含640x480像素信息,每个像素8位.(灰色图像)

我需要从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)
Run Code Online (Sandbox Code Playgroud)

它与cv,cv2混淆.我现在已经尝试了一段时间,但我找不到解决方案.

Dan*_*ick 11

OpenCV不支持.RAW文件,请参阅imread,

但是文件可以用Python打开并用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()
Run Code Online (Sandbox Code Playgroud)

这使得一个可以由OpenCV直接操作的numpy数组

import cv2
cv2.imshow('', im)
cv2.waitKey()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)