STM32采集ov2640的视频图像,串口WiFi传输JPEG视频图像

litch133 2017-05-27 10:36:22
思路是上位机解析一帧一帧的图像,通过picturebox显示图像,加定时器刷新的方法实现实时显示。后边我在网上找了一下资料,有的说可以用JPEG流处理的方式,循环接收数据,放在流当中显示,
public void RC()
{
/************************************************************************/
/* 接收方为服务器端,监听,等待客户端发送图片,并作显示 */
/************************************************************************/
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint point = new IPEndPoint(IPAddress.Any, 10000);
sock.Bind(point);
sock.Listen(10);

while (true)
{
Socket client = sock.Accept();
byte[] bitLen=new byte[8];
client.Receive(bitLen,bitLen.Length,SocketFlags.None);
//第一步接收文件的大小
long contentLen = BitConverter.ToInt64(bitLen,0);
int size = 0;
MemoryStream ms = new MemoryStream();
//循环接收文件的内容,如果接收完毕,则break;
while (size<contentLen)
{
//分多次接收,每次接收256个字节,
byte[] bits = new byte[256];
int r = client.Receive(bits, bits.Length, SocketFlags.None);
if (r <= 0) break;
ms.Write(bits,0,r);
size += r;
}
client.Close();
//接收到就显示,然后关闭当前连接,继续监听
wangle(ms);
}

}
public void wangle(MemoryStream ms)
{
Image img = Image.FromStream(ms);
picBox.Image = null;
picBox.Image = img;
}
我用这个调试之后图像只能显示顶头大概三四行的数据,然后会上位机卡掉,求教解决方法,谢谢了
...全文
1881 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2017-05-27
  • 打赏
  • 举报
回复
这个首先区分摄像头是模拟摄像头还是数字摄像头 数字摄像头本身就是 h264输出,不需要上位机参与(如果上位机参与,顶多也就转发) 而模拟摄像头的话,其实也不需要上位机参与,模拟摄像头的信号输入给视频编码器,让视频编码器输出就像
wanghui0380 2017-05-27
  • 打赏
  • 举报
回复
额,方向错误。你应该让上位机那边加装h264编码模块,直接采集视频流 ps:ov2640摄像头其实本身就应该是视频流编码,也不需要上位机去采集什么,他直接把视频流编码给你就行

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧