如何在windows下得到YUV摄像头原始的数据?

因为我想要快速地从我的开发板传数据到电脑,因此我尝试使用USB的视频类模式来传输。 在Linux主机上,我用python的一个库pygame成功地获取到了YUV摄像头原始的数据,
但是在windows下却遇到了问题。
下面是我做过的事:
1.将我的开发板设置成USB摄像头,然后像发送图片一样发送自定义的数据。
if(connected)
{
// Send 614400 byte of mydata
uvcdSendImage( (UINT32)mydata, 614400, 0);
// Wait to end
while(!uvcdIsReady());
}

2.在Linux主机上,我用python的库pygame连接USB摄像头,用下面的代码成功获取数据。
但是Window下的pygame没有 “get_raw()”这个函数。所以我没办法得到摄像头的原始数据。

pygame.init()
pygame.camera.init()
cameras = pygame.camera.list_cameras()
cam = pygame.camera.Camera(cameras[0],(WIDTH,HEIGHT),"YUV")
cam.start()
while receive_size > UVC_SIZE_QQVGA:
raw_data = raw_data + cam.get_raw()
receive_size = receive_size - UVC_SIZE_QQVGA

raw_data = raw_data + cam.get_raw()

cam.stop()

3.然后我尝试在windows下使用 OpenCV(python和C++都尝试过)来获取数据, 但是opencv得到的数据
是转换后的BGR格式的数据,这也不是我想要的。

4.最后我使用windows下另外一个操作摄像头的python库VideoCapture(http://videocapture.sourceforge.net/)。
库里面有个函数叫 "getBuffer()",用这个函数,我好像可以得到YUV摄像头的原始数据,我的意思是开发板发送从摄像头获取到的
数据时,电脑端能够收到数据(我并不知道这是原始的数据还是转化后的数据)。但是当我传输我自定义的数据时(发送的数据和一张图的大小是一样的),
电脑端就不能够得到数据了。
另外我发现了一个现象,当我在开发板上发送自定义的数据时,我打开windows自带的摄像头采集软件Ecap.exe,最开始显示窗口什么也没有。
但当我点击了“录像”按钮,显示就有反应了,我知道这个时候开发板上的数据传上电脑了。

网上搜索了一大圈,也没有找到答案。我最终的目的是利用USB快速传输任意的数据,然后电脑端能够接收。串口慢了,USB的HID模式也不够快。希望可以得到大家的帮助。谢谢。

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android ffmpeg yuv原始数据写入yuv文件
1.首先要给yuv数据分配缓存空间 u_int8_t *video_dst_data[4]; int video_dst_linesize[4]; int video_dst_bufsize; video_dst_bufsize=av_image_alloc(video_dst_data,video_dst_linesize,dec_ctx->width,dec_ctx->height...
OV2659摄像头代码YUV
OV2659摄像头代码YUV,可以给初学者参考; OmniVision_OV2659 - OV2659 2 MP product brief lead free available in a lead-free package 2-Mega
YUVviewer :原始的YUV视频的播放器
原始的YUV视频的播放器(软件不是我写的),如果你做视频处理、视频压缩编码、视频通信、视频检索、视频取证,那么你很可能需要它。该软件的缺点是:你无法看到YUV视频的像素值。
原始YUV数据文件查看工具
可用于打开查看原始YUV数据文件,以确认图像转换后效果
VFW 采集USB摄像头原始的数据桢
语言是VB.net 写的,我想获取USB摄像头中的原始帧数据rn其中: rnSendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0) '在流捕获期间,当一个新的视频缓存区可用的时候就调用它rnrn我在网上看见好像用,LRESULT CALLBACK capVideoStreamCallback(rn HWND hWnd, rn LPVIDEOHDR lpVHdr rn);rn这个函数中的lpVHdr存放的就是原始帧数据。rn问题1:我不知道怎么使用,比如capVideoStreamCallback这个函数该在什么地方调用,希望给个例子。是不是在sendmessage函数中调用的?最好有个实例。。。rn
???如何在windows下得到unix的共享文件???
出于跨平台的需要,rn如何在windows下得到unix的共享文件
如何在JNI层利用Opengl ES显示YUV数据?
请问如何在JNI层利用Opengl ES显示YUV数据呢?如果可行的话,用的是Opengl的哪个方法将yuv显示的呢?rnrn谢谢各位大侠了!
?如何在yuv的一桢数据图象上加汉字
多谢!多谢!
如何在获取摄像头的流媒体?
如何获得?
如何在得到反汇编代码?
我用VC++中的c/c++功能编写代码,不过为了比较一些代码,想看看他们的反汇编,不过用UlterEdit好像没有找到汇编文件,希望各位给点建议,怎么来看,或者有什么其他软件来看。同时我想问问是不是源码编译先是编译成汇编再编译成机器码的?是不是汇编代码越简单,效率越高?还是执行时间越短越好?怎样才是比较高效的代码?
YUV数据
YUV数据 Y:亮度(Luminance) 即灰度值 U和V:色度(chrominance)即饱和度 没有UV信息,一样可以显示完整的图像,不过是黑白的。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。 采样方式 YUV码流有多种不同的格式,要分析YUV码流,就必须搞清楚你面对的到底是哪一种格式,并且必须搞清楚这种格式的YUV采样和分...
在WinCE6.0下, 如何把从摄像头出来的原始 YUV数据保存为JPG图片。
在WinCE6.0下, 如何把从摄像头出来的原始 YUV数据保存为JPG图片。rnrn请给一个思路和提示.
在ccd摄像头得到的RGB原始数据如何在vc中显示出来??
得到一个数据的矩阵,包含RGB信息,按照rn[B,G,B,G,......rn R,G,R,G,......rn B,G,B,G,......rn R,G,R,G,......]排列,已知它的大小,它不是bmp,如何来显示它呢?rn 或者,如何把它转化为bmp图像呢?
Windows Mobile 如何显示YUV数据?
Windows Mobile 没有DDSCAPS_OFFSCREENPLAIN
YUV Player_yuv数据播放器 windows with reg key
YUV Player_yuv数据播放器 windows with reg key
如何在avi文件里写入原始音频数据?
需要用DirectX并且用Filter的方式写入。rnrn不是使用AVI的接口写入。
如何在windows mobile上用directshow驱动摄像头
如何在windows mobile上用directshow驱动摄像头??
如何能得到数据?
课程 上课时间 星期几rn感统 8:30-9:30 星期一rn语言 10:00-11:00 星期一rn数学 11:30-12:30 星期一rn音乐 8:30-9:30 星期二rn感统 10:00-11:00 星期二rnrnrn要得到这样的数据格式:rnrn课程 星期一 星期二 星期三 星期四 星期五rn感统 8:30-9:30 10:00-11:00rn语言 10:00-11:00rn数学 11:30-12:30rn音乐 8:30-9:30rn
如何在directshow架构中获取摄像头帧数据?
我现在使用directshow架构做了视频采集,可以预览到捕捉的图像了,可我就是看不到获取的帧数据在哪个地方(比如获取的每一帧rgb或者yuv数据)?rn 我想获得这些数据做视频的压缩编码。关键代码如下:rnrnbool CCameraDlg::AddToTheGraphic()rnrn m_pGraph->AddFilter(m_pCap,L"Capture Filter"); rn CoCreateInstance(CLSID_SmartTee,NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter,(void **)&m_pSmartTee);rn CoCreateInstance(CLSID_VideoRenderer,NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter,(void **)&m_pRender); rn m_pGraph->AddFilter(m_pSmartTee,L"SmartTee Filter");rn m_pGraph->AddFilter(m_pRender,L"Render Filter");rn IPin * pOut = GetCaptureOutputPin();//FindVideoPin(&PIN_CATEGORY_CAPTURE);rn IPin * pIn = GetSmartTeeInputPin();rnrn m_pGraph->Connect(pOut,pIn); //Video Capture Filter’ Capture Pin à Smart Tee’Input Pinrnrn IPin * mOut = GetSmartTeePreviewPin(); rn IPin * mIn = GetRendererPin(); rn m_pGraph->Connect(mOut,mIn); //Smart Tee’s Preview Pin à Video Renderer Filter’s Input Pinrnrnrnrn// m_pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, m_pCap, NULL, NULL);rnrn return true;rn
Android中有没有办法通过jni在Linux内核获取摄像头yuv数据??
本人移植了ffmpeg库在Android上,但是在对视频编码的时候是通过java层camera接口获取yuv数据的,然后传给jni处理。但这效果很差,而且这个获取yuv的接口还不是纯正的yuv采集,采用回调这样的方式采集。现在就有个问题如何通过jni获取摄像头的yuv数据,当然,我看了V4l2,但是手机里面没有video0这个摄像头映像文件。求大神支个招。。
读摄像头的yuv数据,并通过libav编码
读摄像头的yuv数据,并通过libav编码
HiddenField控件如何在前台得到
var yValueArr = new Array(parseInt(document.getElementById(<%=HiddenField1.ClientID %>).value),280,420,550,600,700,800,720,190,940,590,340);rn上面是前台脚本中的代码 请问后台如何写才可以获得后台控件HiddenField的值rn我是这样写的:rn this.HiddenField1.Value = "100";rn但是有错误 麻烦大家看一下
如何在<%%>得到formbean的属性值
在后台action 中 rnrequest.setAttribute("a",b); rn rn rnb是一个formbean 有一个属性 num 是整型的 请问如何在rn页面的<%%>中得到num的值.rnrnrn唉,在刚才那个问题中就应该一块问了,可一不小心给结贴了,bs下自己!rnrn谢谢各位先!
如何在JSP页面得到值
我用的是SSH 使用了hibernate关系映射,想通过搜索城市然后查询出对应城市里的所有学校,那么在页面中应该怎样得到action中查出来的学校的值,高手们帮帮!!
如何在循环得到File1.FileName?
在点击Dir1时,如何循环得到File1.FileName,rn是否是用File1的listindex,还是其他?rn谢谢!
如何在 域中得到 时间
在一个mytime的域中 在form生成时自动得到当前的时间字段 显示出来 且不能人为修改 刷新和打开这个表单时 时间字段要刷新为当前的时间.rnrnrnrn黄棒手硬 无从下手啊 新人rn谢谢大虾提点
YUV工具查看视频YUV数据
7yuvSetup-2.5.exe先安装,然后将7yuv 2.5-patch.zip中7yuv.exe替换掉安装路径下的7yuv.exe即可
在哪里可以得到*.yuv文件??
在哪里可以得到*.yuv文件??
哪能得到 .yuv 视频源文件?
由于没有采集卡,又需要做关于MPEG4的研究,在encoder时,需要yuv(4:2:0)的未压缩的视频源文件,不知哪里能获得?
windows最原始的网络通信
这是Winsock基于TCP通信的基础,里面实现了两台机子的通信,后续可以添加功能实现一个木马雏形,非常基础。适用于对Winsock无基础的
YUV数据叠加OSD
调用接口有三个: HANDLE hMixer = YOM_Initialize(); YOM_MixOSD(hMixer,
YUV数据如何叠加
怎么能实现,将两帧不同大小的YUV数据合并一帧,使小分辨率的覆盖大分辨率的一部分?求热心人帮助,先谢过了。
YUV数据播放器
YUV播放器以及注册码生成器
YUV数据问题
希望求一个 YUV 数据 直接在 android 模拟机上面显示的demo 研究一下 使用 OPENGL 显示彩色的yuv数据
DirectDraw绘制YUV数据
源代码为VC6.0工程,用于实验DirectDraw绘制一帧YUV(420)即YV12数据。
HEVC YUV数据的获取
HM代码中有两个类用来保存YUV数据。分别在TComPicYuv.h和TComYuv.h中 TComYuv class TComYuv { Pel* m_apiBuf[MAX_NUM_COMPONENT]; UInt m_iWidth; UInt m_iHeight; Pel* getAddr(const ComponentID id)
YUV数据设置颜色
https://zh.wikipedia.org/wiki/YUV#.E8.BD.89.E6.8F.9B 另一种换算法 Y = 0.257R + 0.504G + 0.098B + 16 U = 0.148R - 0.291G + 0.439B + 128 V = 0.439R - 0.368G - 0.071B + 128 B = 1.164(Y - 16) + 2.018(U ...
YUV数据讲解
网上YUV如出一辙都是翻译的: https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx YUV有两大类型:planar 和 packed 对于planar的YUV ,先连续存储所有像素点的Y,接着存储所有像素点的U,接着存储像素点的V。 对于packed的YUV,每个像素点的Y,U,V是...
如何在windows server 2003中得到XP的界面?
我今天装上了windows server 2003,因为界面难看又换回XP了,刚才在帖子里看到有人说在2003中可以得到XP的界面,是不是真的?该怎么变?谁来讲一下。rn见我的下边的帖子:rnhttp://expert.csdn.net/Expert/topic/1732/1732776.xml?temp=.4001886rn知道的快说,马上给分!
请问如何在WINDOWS下,得到当前硬盘的序列号?
谢谢,那位大大能回答一下呀.
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法