工具与软件:
大家好!
我正在尝试将 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