第一步,在单片机上添加如下代码

 在读取摄像头数据的时候,加入下面这段代码

UART_Send_Data(UART4,color1);//通过串口发送RGB565的高八位
UART_Send_Data(UART4,color2);//通过串口发送RGB565的低八位

第二步,使用串口调试软件,接收数据

注意需要打开HEX显示

一共会接收320*240*2字节数据,速度会有点慢,接收速度根据波特率大小

第三步,将接收的数据保存为文件

我这里建议,手动复制。

首先在D盘下新建一个txt文件,并命名为1.txt

 然后串口调试软件接收的数据,复制刚才新建的1.txt文件文件中,保存文件

第四步,新建Python程序并输入如下内容

from PIL import Image,ImageDraw
import os


#定义图像大小
w = 320     #宽
h = 240     #高

FileAdd = os.getcwd() + "\\1.txt"#源文件路径

OutFile = os.getcwd() + "\\out.jpeg"#输出文件名称


f = open(FileAdd,encoding = "utf-8")#打开文件
print("正在合成来自" + FileAdd + "的图像数据,合成为" + str(w) + "*" + str(h) + "的图像")

Hex_To_Dec = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}

z = 0
RGB = []
for x in range(w * h * 60):#将文本型十六进制,转为数值型十六进制
    f.seek(z+0,0)
    f1 = f.read(1)
    f.seek(z+1,0)
    f2 = f.read(1)
    f.seek(z+3,0)
    f3 = f.read(1)
    f.seek(z+4,0)
    f4 = f.read(1)
    z = z + 6
    
    s = (Hex_To_Dec[f1] << 12) + (Hex_To_Dec[f2] << 8) + (Hex_To_Dec[f3] << 4) + Hex_To_Dec[f4]
    
    #将RGB565转为RGB888
    r = (s & 0xF800) >> 8
    g = (s & 0x7E0 ) >> 3
    b = (s & 0x1F) << 3
    RGB.append((r, g, b))
    
    if z >= (w * h * 6):
        break
    
f.close()#关闭文件
image = Image.new('RGB', (w, h), (255, 255, 255))#创建新图片对象
draw = ImageDraw.Draw(image)# 创建Draw对象用于绘制新图:
i= 0
for y in range(h):# 填充每个像素并对对应像素填上RGB值:
    for x in range(w):
        draw.point((x, y), fill=RGB[i])
        i = i + 1
        
image.save(OutFile, 'jpeg')#保存文件
image.show()#查看图像

第五步,开始运行Python程序

之后Python会读取当前目录下1.txt中内容,把它转换成图像并自动打开图像

将保存刚才处理过的图像保存到当前目录下

补充:Python将会用到PIL库,在使用这个程序之前,请添加此库,否则将会报错

添加PIL库请参考如下方法

win+r,输入cmd,回车

 之后会输入如下内容

pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow

 然后回车

 显示Successfully,就表示安装成功了

 开源仓库:

gitee:OV7725ToJPG: 基于Pyhton OV7725图像转jpg

github:GitHub - AhDun/OV7725ToJPG: 基于Pyhton OV7725图像转jpg

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐