关于linux命令pict的信息( 九 )


* struct video_mbuf
size The number of bytes to
map
frames The number of frames
offsets The offset of each frame
这个数据结构在用mmap方式获取数据时很重要:
size表示图像的大小 , 如果是640*480的彩色图像,size=640*480*3
frames表示帧数
offsets表示每一帧在内存中的偏移地址,通过这个值可以得到数据在图像中的地址 。
得到这个结构的数据可以用ioctl的VIDIOCGMBUF命令 。源码如下:
int v4lgetmbuf(v4ldevice
*vd)
{
if(ioctl(vd-fd, VIDIOCGMBUF, (vd-mbuf))0)
{
v4lperror("v4lgetmbuf:VIDIOCGMBUF");
return -1;
}
return
0;
}
而数据的地址可以有以下方式计算:
unsigned char
*v4lgetaddress(v4ldevice *vd)
{
return (vd-map +
vd-mbuf.offsets[vd-frame]);
}
2)获取影像mmap方式 。
在video4Linux下获取影像有两种方式:overlay和mmap 。由于我的摄像头不支持overlay方式,所以这里只谈mmap方式 。
mmap方式是通过内存映射的方式获取数据,系统调用ioctl的VIDIOCMCAPTURE后,将图像映射到内存中 , 然后可以通过前面的v4lgetmbuf(vd)函数和v4lgetaddress(vd)函数获得数据的首地址,这是李可以选择是将它显示出来还是放到别的什么地方 。
下面给出获取连续影像的最简单的方法(为了简化,将一些可去掉的属性操作都去掉了):
char*
devicename="/dev/video0";
char* buffer;
v4ldevice device;
int width =
640;
int height = 480;
int frame =
0;
v4lopen("/dev/video0",device);//打开设备
v4lgrabinit(device,width,height);//初始化设备,定义获取的影像的大小
v4lmmap(device);//内存映射
v4lgrabstart(device,frame);//开始获取影像
while(1){
v4lsync(device,frame);//等待传完一帧
frame
= (frame+1)%2;//下一帧的frame
v4lcapture(device,frame);//获取下一帧
buffer =
(char*)v4lgetaddress(device);//得到这一帧的地址
//buffer给出了图像的首地址 , 你可以选择将图像显示或保存......
//图像的大小为
width*height*3
..........................
}
转载仅供参考,版权属于原作者 。祝你愉快,满意请采纳哦
(Linux)Openchrome编译出错我来回答,你应该考虑的不是linux的版本,而是寻找linux版本的驱动 。
你可以试试这个:
unichorme驱动 。
ubuntu下编译通过31689希望对你有帮助!
PICT使用链接linux命令pict:
提取码:wo9n
1.win+R 打开命令行窗口linux命令pict,输入“cmd”进入命令行页面
2.命令进入pict.exe目录
3.运行pict
4.将测试用输出到指定文件,在pict.exe目录可以看到生成的文件
1.以创建宝宝信息为例,需要输入的项有:名字 , 身份,生日,年级,每个项都有两个参数:设置,不设置,整理内容如下:
2.在pict.exe目录下创建一个baobao.txt文件,文件名最好为英文
3.在baobao.txt文件输入整理的内容 , 运行pict,即可得到如下用例:
4.可以对一些条件进行限制:
4.1单条用例中名字 , 身份 , 生日,年级只能有一个为不设置linux命令pict;
4.2 要求覆盖所有名字、身份、生日、年级的组合测试项
linux命令pict的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、linux命令pict的信息别忘了在本站进行查找喔 。

推荐阅读