本文章使用的摄像头是OV2640,可以直接输出JPG格式的图片,摄像头不多说,开发板是ESP32-CAM,串口输出数据给上位机,C#写的,VS2017.
1、JPG数据图片显示和保存
JPG格式的图片只要知道开头数据0xFF 0xD8,结尾数据0xFF 0xD9即可显示和保存。
上图和代码:

主要实现:
if (receiveData[0] == 0xFF && receiveData[1] == 0xD8)
{
if (revCount >= 1024)
{
this.Invoke(new EventHandler(delegate
{
try
{
ms = new MemoryStream(receiveData);
Image img = Image.FromStream(ms);
this.pictureBox1.Image = img;
label3.Text = "PixelFormat:" + img.PixelFormat.ToString();
label4.Text = "Size:" + img.Size;
}
catch (Exception ex)
{
label7.Text = ex.Message;
}
finally
{
}
}));
}
}
2、GRB565数据图像显示和保存
RGB565输出16位图,一个像素两个字节,R5位、G6位、B5位。这对数据解析很重要,不理解的自行学习吧!
BMP图像格式需要了解一下,不知道网上很多,这里不多说了。
图和代码:

主要实现:将RGB565像素数据解析成24位RGB数据这是重点。
else if (rab_RGB.Checked)
{
byte R = 0, G = 0, B = 0;
BitMapFile_Info Bitmap24 = new BitMapFile_Info();
Bitmap24.bfType = 0x4D42;
Bitmap24.bfSize = 54 + 320 * 240 * 3;
Bitmap2

本文介绍了如何处理来自OV2640摄像头的JPG、RGB565和YUV数据,包括显示和保存为JPG或BMP图像。针对JPG数据,只需识别特定开头和结尾标志即可;对于RGB565数据,将其解析为24位RGB并保存为BMP;YUV数据通过转换公式转为RGB后保存为BMP,同时提供了直接保存为黑白图的方法。文章提供相关代码实例。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



