1. 程式人生 > >Linux下使用V4L2讀取獲取拍照(獲取靜態影象)

Linux下使用V4L2讀取獲取拍照(獲取靜態影象)

1. 開啟裝置

 int fd = open("/dev/video0", O_RDWR);

2. 查詢裝置屬性

    struct v4l2_capability cap;
    ioctl(fd, VIDIOC_QUERYCAP, &cap);

    
3. 設定影象幀格式和畫素大小

    struct v4l2_format fmt;
    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    fmt.fmt.pix.width  = 640;
    fmt.fmt.pix.height = 480;
    fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG; 使用JPEG格式幀,用於靜態影象採集
    ioctl(fd, VIDIOC_S_FMT, &fmt);

    
4. 讀取一幀JPEG影象並寫入檔案

    void *buff = malloc(1024 * 1024);  分配快取足以容納一幀影象
    size = read(fd, buff, 1024 * 1024);
    int filefd = open("./capture.jpg", O_RDWR | O_CREAT);
    write(filefd, buff, size);

    
    網上讀取影象幀示例大多用mmap方式,但對於只讀取幾張靜態影象而言,read方式足以。

    控制代碼close的事兒就不累述了。

相關推薦

Linux使用V4L2讀取獲取拍照獲取靜態影象

1. 開啟裝置  int fd = open("/dev/video0", O_RDWR); 2. 查詢裝置屬性     struct v4l2_capability cap;     ioctl(fd, VIDIOC_QUERYCAP, &cap);      3. 設定影象幀格式和畫素大小   

linux檔案讀取效能比較fread、read、mmap

在進行大規模資料處理時,讀檔案很有可能成為速度瓶頸。不管你的CPU有4個核還是8個核,主頻有2G還是3G,硬碟IO速度總是有個上限的。在本人最近的一次經歷中,對一個11G的文字進行資料處理,一共耗時34.8秒,其中竟然有30.2秒用在訪問IO上,佔了所有時間的87%左右。  

【轉】LinuxRabbitMQ服務器搭建單實例

ble kernel ror com 使用 board lang and soc 閱讀目錄 系統環境 安裝步驟 註意事項 參考資料 回到頂部 系統環境 操作系統:CentOS6.9 erlang:OTP 19.3 rabbitmq:rabbitmq-serve

Linux進度條的實現加彩色版本

一:進度條 關於進度條不用我多說,當我們在安裝程式或者軟體時通常會看到軟體安裝進度,而這個給我以視覺感受的進度表示,通常被叫做進度條。 二:進度條需要的知識儲備 緩衝區: 對於緩衝區這個概念我們其實並不

Linuxphp安裝Redis擴充套件其他擴充套件同理

1、cd  /usr/local/src/  切換到 3、tar zxvf   2.2.4.tar.gz  解壓檔案 4、cd  phpredis-2.2.4      #進入安裝目錄 5 、/usr/local/php/bin/phpize    # 使用 php

Linux搭建Redis分散式叢集詳細圖解演示

一 環境搭建.        1.1 環境準備.三臺虛擬機器.redis的版本是3.2.9.redis的各個版本下載地址:連結. 三個主節點三個從節點.       

Linux搭建Zookeeper分散式叢集詳細圖解演示

一:實驗環境搭建.       1.1 Linux使用的是CentOS7.3的發行版,Zookeeper的版本是3.4.12.搭建三個節點的叢集,是分別在三臺虛擬機器上配置Zookeeper節點,不是在一臺虛擬機器上搭建的三個Zookeepe

Linux 如何產生core檔案core dump設定

       今天在Linux下除錯C程式時,出現段錯誤,習慣性的ls下當前目錄,發現沒有生成core檔案。驚訝了一下,怎麼回事?以前都會產生的啊,難不成是程式的問題?後來同事提醒是不是系統沒有開啟生成core dump的設定。 還真是系統設定問題,我的ubuntu14.0

Linux壓縮某個資料夾資料夾打包

tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包後生成的檔名全路徑 要打包的目錄 例子:把/xahot資料夾打包後生成一個/home/xahot.tar.gz的檔案。 zip 壓縮方法: 壓縮當前的資料夾 zip -r ./x

LinuxEclipse給工程配置附加庫目錄

這個問題是在用Eclipse編譯c++執行緒池+任務池這篇文章寫的程式碼時遇到的問題 Eclipse + CDT: pthread_create函式編譯時報錯:undefined reference to `pthread_create’ undefined ref

Linux使用docker搭建STF踩坑成功

自從經歷了Mac下docker的失敗後,一直在查詢原因,也開始自學docker。為了搞懂docker,還在某東上買了James Turnbull的書《THE DOCKER BOOK》來研究。這裡介紹的是使用Linux環境來使用docker,不過也確實是,docker本身跑的

Linux 安裝翻譯軟體——stardict星際譯王

眾所周知,我們在學習新知識的時候什麼最有效?當然是看官網的API,但是苦於很多API都是英文的,於是我們就不得不找翻譯軟體的幫忙了。此處就帶大家裝一款非常優秀的翻譯軟體,也有取詞功能。 1.安裝stardict 在Ubuntu中有兩種安裝方式 在

Linuxsonarqube安裝使用方法程式碼check工具

背景 1、   虛擬機器CentOS release 7.2 2、   sonarqube-6.2 3、   sonar-scanner-2.8 一、  sonarqube-6.2的安裝 這裡下載的是sonarqube-6.2,下載完成之後解壓下載的zip壓縮包。會產生

Linux開啟啟動服務命令chkconfig、ntsysv,檢視開啟了哪些服務

netstat可用檢視目前已經啟動的服務,service可以用來立即啟動某個服務。chkconfig用來設定服務在開機的時候自動啟動。--檢視nfs服務是否開機自動啟動。可以看見6個開機級別都不會啟動nfs服務。[[email protected] ~]# ch

【Centos7】如何在Linux安裝和使用gc++最詳細版

【前言】最近在學習基於Linux的C++程式設計,但是在安裝編譯器的過程中卻遇到了不少問題,網上的一些回答也不夠詳細,因此有了這篇文章。【Centos7】注意,我是在Linux虛擬機器下的centos7中完成的以下教程。【root許可權】開啟終端,或者按Ctrl+Alt+F2

linuxOracle Instant Client安裝rpm、zip

下載OracleInstant Client(與資料庫版本一致) 地址http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下載後把包移到linux任意目錄下,為了方便建立了data目錄存放

如何讓 Windows,Ubuntu(Linux)的 Chrome 支援 WebGL ?親測有效

tensorflow.js needs WebGL.But my chrome does not support WebGL. I have only  virtualbox in which chrome runs.My god,I have no money to buy

linux部署和執行kettle——配置檔案、動態獲取、後臺執行

一.部署準備 1.1 java安裝(略) 1.2 JDK配置         1.命令列鍵入“cd /etc”進入etc目錄 2.命令列鍵入“vi profile”開啟profile檔案 3.敲擊鍵盤ctrl+F到檔案末尾 4.在末尾處,即第一個~的地方,敲擊鍵盤

angular框架的跨域問題獲取天氣數據

cat blog 蘇州 scrip location func amp set 服務 1、新浪天氣:http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=0&city=&df

linuxgetenv、putenv、setenv獲取設定環境變數

getenv(取得環境變數內容)  相關函式 putenv,setenv,unsetenv  表頭檔案 #include<stdlib.h>  定義函式 char * getenv(const char *name);  函式說明 getenv()用來取得引數n