工具与软件:
大家好!
我正在尝试将 MSP430FR5994与 OV7670 (具有 FIFO 存储器)连接、获取图像数据(不用于视频流式传输)并将其显示在 PC 屏幕上(使用 Python 代码)。 我可以成功地从 OV7670的 FIFO 存储器中读取数据、并将其存储到 MSP430FR5994的 FRAM 中。 我还可以通过 MSP430FR5994的 UART 将此数据发送到 PC。 但是,当我想在这幅画上显示图像时,我会得到一个全是乱码的窗口,如下所示:

我还注意到在 PC 上接收到的数据将包括一些奇怪的数据,如"m"、"i"、"~"。 我认为我获得的数据应该是0~f 之间的数字

这是我用于显示映像窗口的 Python 代码:
import serial
import numpy as np
import cv2
SERIAL_PORT = 'COM9'
BAUD_RATE = 115200
IMAGE_WIDTH = 160
IMAGE_HEIGHT = 120
IMAGE_SIZE = IMAGE_WIDTH * IMAGE_HEIGHT
def receive_image():
with serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=5) as ser:
print("waiting for data...")
data = ser.read(IMAGE_SIZE)
if len(data) == IMAGE_SIZE:
print("receive successfully, data length:", len(data))
print(data)
return np.frombuffer(data, dtype=np.uint8).reshape((IMAGE_HEIGHT, IMAGE_WIDTH))
else:
print("receive failed, data length:", len(data))
return None
image = receive_image()
if image is not None:
cv2.imshow("OV7670 Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
我使用的图像格式是 RGB565的160x120。
我想知道如何解决此问题? 是由某些图像编码/解码问题引起的吗?
谢谢!
YaTong