资源简介
opencv+udp+c++的摄像头实时传输显示源码,里面包括client server两个c++源代码。用的时候需要导入opencv库和附加依赖项WS2_32.lib。在开发板也测试过。只需在开发板上移植opencv的动态链接库(该库我已经上传)和修改client.cpp中的一些函数就可以获取开发板上摄像头视频并实时显示。
代码片段和文件信息
#include
#include
#include <./opencv/cv.h>
#include <./opencv/cxcore.h>
#include <./opencv/highgui.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
const int blocksize=28880;
//定义包结构
struct recvbuf//包格式
{
char buf[blocksize];//存放数据的变量
int flag;//标志
};
struct recvbuf data;
wVersionRequested = MAKEWORD( 2 0 );
err = WSAStartup( wVersionRequested &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2||HIBYTE( wsaData.wVersion ) != 0 ) {
WSACleanup( );
return;
}
SOCKET sockClient=socket(AF_INETSOCK_DGRAM0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr(“127.0.0.1“);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
int nRecvBuf=1024*1024*10;//接收缓存10M
setsockopt(sockClientSOL_SOCKETSO_RCVBUF(const char*)&nRecvBufsizeof(int));
//声明IplImage指针
IplImage* pframe = NULL*frame_copy=0;
//获取摄像头
CvCapture* pCapture = cvCreateCameraCapture(0);
//创建窗口
//cvNamedWindow(“video“ 1);
//显示视屏
/*while(1)
{
pframe=cvQueryframe( pCapture );
if(!pframe)break;
cvShowImage(“video“pframe);
char c=cvWaitKey(33);
if(c==27)break;
}
*/
//IplImage *frame=NULL *frame_copy=0;
while(1){
//memset(data.buf 0 sizeof(char)*blocksize);
pframe=cvQueryframe(pCapture); //取帧操作
//printf(“the deeps is %d; the channel is :%d\n“pframe->depthpframe->nChannels);
if(!pframe)break;
//cvShowImage(“video“frame);
if(pframe)
{
char* img=pframe->imageData; //指向该帧的数据矩阵
for(int i=0;i<32;i++) //640*480*3= 921600
{
for(int k=0;k {
data.buf[k]=img[i*blocksize+k];
}
if(i==31) //标识一帧中最后一个数据包
{
data.flag=2;
}
else
{
data.flag=1;
}
sendto(sockClient(char*)(&data)sizeof(data)0(SOCKADDR*)&addrSrvsizeof(SOCKADDR));
}
cvReleaseImage( &frame_copy ); // 退出之前结束底层api的捕获操作
Sleep(25);
}
}
cvReleaseCapture(&pCapture);
closesocket(sockClient);
WSACleanup();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-21 18:52 opencv+UDP的摄像头视频实时传输
文件 2532 2016-01-21 16:53 opencv+UDP的摄像头视频实时传输\client.cpp
文件 3163 2016-01-21 17:08 opencv+UDP的摄像头视频实时传输\server.cpp
----------- --------- ---------- ----- ----
5695 3
- 上一篇:稀疏矩阵运算器(c++)
- 下一篇:c++ 最小堆实现
相关资源
- socket客户端.c
- socket服务端.c
- libnet发送udp和tcp包
- socket tcp应用
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- socket通讯c++源码(客户端+服务端)
- MFC UDP编程
- MFC的异步网络通讯应用程序
- opencv激光中心线的提取
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 各种关于CAsyncSocketCSocket内幕及其用法
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- 张平OpenCV算法精讲基于python和C++教材
- MFC多人聊天室
- 虹膜识别开源代码OSIRIS4.1基于opencv
- 使用socket套接字发送udp数据包
- CAsyncSocket异步实现服务器与客户端
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- OpenCV打开摄像机显示在MFC窗口工程源
- 基于socket文件传输的实现源码[C++]
评论
共有 条评论