91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 562KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-16
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 圖片采集??

資源簡(jiǎn)介

linux下v4l2實(shí)現(xiàn)圖片采集 在開(kāi)發(fā)板上要交互編譯 最好是靜態(tài)交互

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“v4l2grab.h“
?
#define??TRUE 1
#define??FALSE 0

#define?FILE_VIDEO? “/dev/video0“
#define?BMP?????? “image_bmp.bmp“
#define?YUV “image_yuv.yuv“

#define??IMAGEWIDTH????640
#define??IMAGEHEIGHT???480

static???int??????fd;
static???struct???v4l2_capability???cap;
struct?v4l2_fmtdesc?fmtdesc;
struct?v4l2_format?fmtfmtack;
struct?v4l2_streamparm?setfps;??
struct?v4l2_requestbuffers?req;
struct?v4l2_buffer?buf;
enum?v4l2_buf_type?type;
unsigned?char?frame_buffer[IMAGEWIDTH*IMAGEHEIGHT*3];


struct?buffer
{
void?*?start;
unsigned?int?length;
}?*?buffers;
?
int?init_v4l2(void)
{
int?i;
int?ret?=?0;

//opendev
if?((fd?=?open(FILE_VIDEO?O_RDWR))?==?-1)?
{
printf(“Error?opening?V4L?interface\n“);
return?(FALSE);
}

//query?cap
if?(ioctl(fd?VIDIOC_QUERYCAP?&cap)?==?-1)?
{
printf(“Error?opening?device?%s:?unable?to?query?device.\n“FILE_VIDEO);
return?(FALSE);
}
else
{
????? printf(“driver:\t\t%s\n“cap.driver);
????? printf(“card:\t\t%s\n“cap.card);
????? printf(“bus_info:\t%s\n“cap.bus_info);
????? printf(“version:\t%d\n“cap.version);
????? printf(“capabilities:\t%x\n“cap.capabilities);
?????
????? if?((cap.capabilities?&?V4L2_CAP_VIDEO_CAPTURE)?==?V4L2_CAP_VIDEO_CAPTURE)?
????? {
printf(“Device?%s:?supports?capture.\n“FILE_VIDEO);
}

if?((cap.capabilities?&?V4L2_CAP_STREAMING)?==?V4L2_CAP_STREAMING)?
{
printf(“Device?%s:?supports?streaming.\n“FILE_VIDEO);
}
}?

//emu?all?support?fmt
fmtdesc.index=0;
fmtdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
printf(“Support?format:\n“);
while(ioctl(fdVIDIOC_ENUM_FMT&fmtdesc)!=-1)
{
printf(“\t%d.%s\n“fmtdesc.index+1fmtdesc.description);
fmtdesc.index++;
}

????//set?fmt
????fmt.type?=?V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.pixelformat?=?V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.height?=?IMAGEHEIGHT;
fmt.fmt.pix.width?=?IMAGEWIDTH;
fmt.fmt.pix.field?=?V4L2_FIELD_INTERLACED;

if(ioctl(fd?VIDIOC_S_FMT?&fmt)?==?-1)
{
printf(“Unable?to?set?format\n“);
return?FALSE;
}?
if(ioctl(fd?VIDIOC_G_FMT?&fmt)?==?-1)
{
printf(“Unable?to?get?format\n“);
return?FALSE;
}?
{
????? printf(“fmt.type:\t\t%d\n“fmt.type);
????? printf(“pix.pixelformat:\t%c%c%c%c\n“fmt.fmt.pix.pixelformat?&?0xFF?(fmt.fmt.pix.pixelformat?>>?8)?&?0xFF(fmt.fmt.pix.pixelformat?>>?16)?&?0xFF?(fmt.fmt.pix.pixelformat?>>?24)?&?0xFF);
????? printf(“pix.height:\t\t%d\n“fmt.fmt.pix.height);
????? printf(“pix.width:\t\t%d\n“fmt.fmt.pix.width);
????? printf(“pix.field:\t\t%d\n“fmt.fmt.pix.field);
}
//set?fps
setfps.type?=?V4L2_BUF_TYPE_VIDEO_CAPTURE;
setfps.parm.capture.timeperframe.numerator?=?10;
setfps.

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-08-28?10:14??lab_v4l2_yuyv\
?????文件??????616493??2016-08-26?20:47??lab_v4l2_yuyv\v4
?????文件??????621895??2016-08-27?22:16??lab_v4l2_yuyv\v4l2grab
?????文件????????9833??2016-08-28?10:14??lab_v4l2_yuyv\v4l2grab.c
?????文件????????1981??2012-12-18?06:37??lab_v4l2_yuyv\v4l2grab.h
?????文件???????11741??2012-12-19?04:39??lab_v4l2_yuyv\zed-camera

評(píng)論

共有 條評(píng)論