第一步,在单片机上添加如下代码
?在读取摄像头数据的时候,加入下面这段代码
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
#定义图像大小为320*240
w = 320 #宽
h = 240 #高
#源文件路径,可以根据自己的情况进行修改
FileAdd = "D:\\1.txt"
#用于转换的
HEX = {}
RGB = []
#十六进制字符转数字
def Hex_To_Dec(hex):
if hex == '0':
re = 0
elif hex == '1':
re = 1
elif hex == '2':
re = 2
elif hex == '3':
re = 3
elif hex == '4':
re = 4
elif hex == '5':
re = 5
elif hex == '6':
re = 6
elif hex == '7':
re = 7
elif hex == '8':
re = 8
elif hex == '9':
re = 9
elif hex == 'A':
re = 10
elif hex == 'B':
re = 11
elif hex == 'C':
re = 12
elif hex == 'D':
re = 13
elif hex == 'E':
re = 14
elif hex == 'F':
re = 15
else :
return (100)
return (re)
#main()
if __name__ == "__main__":
f = open(FileAdd,encoding = "utf-8")#打开文件
print("正在合成来自" + FileAdd + "的图像数据,合成为" + str(w) + "*" + str(h) + "的图像")
x = 0
z = 0
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
HEX[x] = ((Hex_To_Dec(f1) << 12) + (Hex_To_Dec(f2) << 8) + (Hex_To_Dec(f3) << 4) + Hex_To_Dec(f4))
if z >= (w * h * 6):
break
f.close()#关闭文件
x = 0
for x in range(len(HEX)):#将RGB565转为RGB888
r = (((HEX[x] & 0xF800) >> 8))
g = (((HEX[x] & 0x7E0 ) >> 3))
b = (((HEX[x] & 0x1F) << 3))
rgb = (r, g, b)
RGB.append(rgb)
#print(RGB)
#print(HEX)
image = Image.new('RGB', (w, h), (255, 255, 255))#创建新图片对象
draw = ImageDraw.Draw(image)# 创建Draw对象用于绘制新图:
x = 0
y = 0
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('D:\\2.jpeg', 'jpeg')#将转换后的图像保存到D盘中
image.show()#查看图像
第五步,开始运行Python程序
之后Python会读取1.txt中内容,把它转换成图像并自动打开图像
我的目前ov7725不在身边,所以显示出来的图像是空白的。
将保存刚才处理过的图像保存到D盘中
?
补充:Python将会用到PIL库,在使用这个程序之前,请添加此库,否则将会报错
添加PIL库请参考如下方法
win+r,输入cmd,回车
?之后会输入如下内容
pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow
?然后回车
?显示Successfully,就表示安装成功了
|