Opencv Python显示原始imag

2024-06-08 02:00:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何用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)

这和cv,cv2太混淆了。我已经试了一段时间了,但找不到解决办法。


Tags: 图像import信息imgusras格式np
3条回答
#!/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()

如果您想将“原始”图像保存为“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")

.RAW文件在OpenCVsee 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()

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

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

相关问题 更多 >

    热门问题