• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于QCamera類的攝像頭QT應(yīng)用程序開發(fā)與后端圖像處理

    2018-02-25 02:39:06鄭忠梢蔣學(xué)程羅志灶
    電子技術(shù)與軟件工程 2018年7期
    關(guān)鍵詞:攝像頭

    鄭忠梢 蔣學(xué)程 羅志灶

    摘要 QT是一種跨平臺開發(fā)環(huán)境,可以開發(fā)windows、android下的各種應(yīng)用程序,所以深受程序員喜愛?,F(xiàn)在筆記本、手機基本上都自帶攝像頭,所以開發(fā)攝像頭應(yīng)用程序也成了十分熱門的一個方向。QT內(nèi)部自帶一個QCamera類使得它的攝像頭應(yīng)用程序開發(fā)變得非常簡單。主要從攝像頭的信息獲取、攝像頭的選擇、攝像頭的打開、攝像頭圖像回顯、攝像頭資源的關(guān)閉退出等幾個方面介紹QT中的攝像頭應(yīng)用程序開發(fā),并對獲得的圖像信息做了一些簡單的銳化處理,使得結(jié)果易于讓計算機進(jìn)行對比分析,討論了銳化處理中遇到的一些問題。

    【關(guān)鍵詞】QCamera類 攝像頭 應(yīng)用程序開發(fā)銳化 sharpening android

    目前國內(nèi)手機市場和筆記本市場幾近飽和,大部分人群基本人手一部手機,在校大學(xué)生幾乎人手一臺筆記本電腦,在這些設(shè)備上攝像頭又是它們的標(biāo)準(zhǔn)配置。要想提高這些設(shè)備的市場競爭力,攝像頭應(yīng)用程序的開發(fā)非常必要,比如可以使用它們完成圖像識別、美顏拍照、視頻拍攝截圖等等。手機上,可以用它開發(fā)表情識別、人臉識別、二維碼、道路識別。筆記本上在添加了攝像頭選擇功能之后,選擇多個攝像頭資源,讀取其他攝像頭的視頻信息甚至可以開發(fā)其他的攝像頭應(yīng)用程序,簡單的有視頻監(jiān)控,復(fù)雜的圖像信號采集、視頻信號采集等等。總之,攝像頭是一種常用的視頻輸入設(shè)備,利用攝像頭采集圖像信息,并對圖像信息進(jìn)行處理,已經(jīng)廣泛地運用在日常生活中。本文主要論述QT中如何采用QCamera類實現(xiàn)攝像頭應(yīng)用程序開發(fā),以達(dá)到利用攝像頭作為其他應(yīng)用程序的軟件基礎(chǔ)。針對筆記本、手機目前預(yù)裝的攝像頭大多為定焦攝像頭,而且對于運動圖像拍攝截圖過程中,圖像比較模糊,不利于后期處理的問題,我們做了一些基于QT creator的,圖像銳化處理算法實驗,本文就實驗方法和結(jié)果進(jìn)行了一些討論

    1 開發(fā)平臺

    1.1 QT的基本介紹

    QTcreator是一款跨平臺的C++圖形界面應(yīng)用程序框架由挪威TrollTech公司出品,開放源代碼,完全面向?qū)ο?,模塊化程度高,可重用性好,容易擴展,允許真正的組件編程,提供了信號/槽機制,替代回調(diào)函數(shù),使組件間信號信號傳遞更安全、簡單,應(yīng)用非常廣泛。QT還提供了多達(dá)250個以上的C++類。并且在界面顯示,用戶操作等方面借鑒了一些VS系列的所見即所得風(fēng)格,程序員編程方便,最終的的app用戶使用簡單。在圖像操作方面creator提供了一個最為簡單易用的控件QPixmap和QCamera類配套使用十分方便,QCamera類獲得的圖像可以直接在內(nèi)存級別上存儲入QPixmap,方便后期的圖像預(yù)處理。而且QCamera類還可以簡單方便的獲取計算機的攝像頭信息,選擇、調(diào)用硬件攝像頭,拍攝視頻或者靜態(tài)圖像并截圖。用戶在QPixmap控件上進(jìn)行預(yù)覽再對圖像進(jìn)行加工處理。

    1.2 QCamera類的具體剖析

    Qt5.0及以上版本中的QMultimedia多媒體包,包含了許多媒體相關(guān)的類,其中的QCamera類用于打開系統(tǒng)的攝像頭設(shè)備。在QT中QCamera類中QCameraViewfinder可以用來實時回顯當(dāng)前攝像頭所采集到的動態(tài)信息,也可以用QCameraImageCapture函數(shù)實現(xiàn)拍照功能。QCameralnfo函數(shù)則可以查閱連接到本機的攝像頭的信息,以供程序、用戶選擇。

    2 圖像的獲取和預(yù)處理

    圖像處理(image processing),一般我們說的圖像處理都是指數(shù)字圖像處理,也就是用計算機對圖像進(jìn)行分析,以達(dá)到所需結(jié)果的技術(shù)。又稱影像處理。數(shù)字圖像是指用工業(yè)相機、攝像機、掃描儀等設(shè)備經(jīng)過拍攝得到的一個大的二維數(shù)組,該數(shù)組的元素稱為像素,其值稱為灰度值。彩色圖像,也就是R(紅)G(綠)B(藍(lán))三種基色的混合,實際上可以看作是3個二維數(shù)組,分別存儲了圖像各自的紅綠藍(lán)三種顏色的信息,圖像處理技術(shù)一般包括圖像壓縮,增強和復(fù)原,匹配、描述和識別3個部分,對于圖像處理既有基于像素級的運算處理方法(例如簡單的二值化處理、亮度增減處理),也有把整個二維數(shù)組進(jìn)行傅里葉變換或者在其他變換域進(jìn)行處理的方法(比如模糊、銳化處理、對比度、色差調(diào)節(jié))。

    2.1 啟用攝像頭獲取圖像和其他信息

    因為QCamera類是一個可視化的類,所以首先要在QT中新建一個普通的窗口工程,這樣才能夠有一個承載QCamera類回顯的界面。而窗體中一般的控件是不能回顯QCamera類的輸出的,QCamera類的輸出分為CaptureViewfinder、CaptureStilllmage、CaptureVideo分別對應(yīng)取景模式、固定圖像模式、錄像模式。分別可以用來,取景、拍照、錄像,所以它們需要回顯一個圖像/視頻的載體,這個載體可以是普通窗體widget類,也可以是一個label類控件。免驅(qū)動攝像頭實際上更嚴(yán)謹(jǐn)一點應(yīng)該稱其為HID協(xié)議攝像頭,是因為wmdows自帶了它的驅(qū)動,所以在用戶使用時可以將其作為免驅(qū)攝像頭看待。

    具體方法如下:首先,在新建的窗口工程的主窗體中需要顯示圖像/視頻的位置添加一個label類控件,然后右鍵點擊該控件,在右側(cè)彈出的復(fù)選框中選擇“提升為”QVideoWidget類控件,將其提升為視頻組件這樣普通的label類控件就具有了視頻回顯的承載屬性,以便于我們的程序在其中進(jìn)行視頻回顯和圖像處理,之后我們可以在后面將攝像頭的輸出視頻流顯示在上面,也可以對其截取圖像保存完成拍照或者用于后期的圖像處理等功能程序。

    2.2 攝像頭信息獲取

    如果想進(jìn)一步完善功能,覺得圖像/視頻回顯的承載部分還不夠,我們還可以取得視頻信號的輸入采集設(shè)備部分的信息。QT中QCamera類中可以采用QListcam_s:在程序中建立一個攝像頭信息列表,其中存放了系統(tǒng)中對應(yīng)的攝像頭信息,比如前后攝像頭、攝像頭ID號等等。這樣我們可以用于其他應(yīng)用程序開發(fā)時制定和判別攝像頭,獲得攝像頭的幀數(shù)、分辨率等信息。

    2.3 打開攝像頭并設(shè)置模式

    有了視頻輸出承載控件和攝像頭列表信息,只要選擇系統(tǒng)的一個攝像頭,并且執(zhí)行打開攝像頭并選擇攝像頭工作模式、指定輸出端就可以進(jìn)行簡單的圖像采集了。具體的后續(xù)視頻開發(fā)程序就可以在輸出的視頻流上做進(jìn)一步的處理。具體過程如下:首先,定義一個攝像頭指針,QCamera *zzk_camera;用于一會兒存放攝像頭地址。

    然后,把指針指向攝像頭信息列表中的對應(yīng)攝像頭部分,zzk camera=newQCamera(cam_s[cam_num]);

    根據(jù)cam num可以選擇不同的攝像頭,完成多個攝像頭的選擇。接著設(shè)置攝像頭的工作模式可以采用函數(shù)setCaptureMode()完成,QT中QCamera類一共可以控制攝像頭有三種工作模式:CaptureViewfinder、CaptureStilllmage、CaptureVideo,即取景模式、靜態(tài)攝影模式、錄像模式;我們一般采用取景模式,再到看到合適的圖像時通過事件或者按鈕觸發(fā)拍照完成圖像截取,過程猶如平常的相機工作原理一般。

    3 過程

    3.1 設(shè)置輸出視頻流對象

    有了以上的基礎(chǔ)后,再用setViewfinder()函數(shù)設(shè)置輸出視頻流到剛才設(shè)置好的視頻流承載對象上就可以完成圖像/視頻應(yīng)用程序的開發(fā)了,如圖1所示,是一個簡單的Windows攝像頭拍照程序例程序的截圖。

    3.2 對獲得圖像進(jìn)行卷積濾波,獲得銳化效果

    從圖2可以看到,攝像頭獲得照片還是比較模糊的的,如果我們需要對它進(jìn)行圖像識別,就需要對他進(jìn)行一定的預(yù)處理,比如簡單的銳化操作一線性濾波。

    線性濾波算是圖像處理最基本的方法首先,我們建立一個二維的濾波矩陣(卷積核)作用于待處理的二維圖像。對于圖像的每一個像素點,計算它的鄰域像素和濾波器矩陣的對應(yīng)元素的乘積,然后加起來,作為該像素位置的值。這也可以認(rèn)為是二維卷積濾波過程,示意圖如圖3所示。

    對圖像和濾波矩陣進(jìn)行逐個元素相乘再求和的操作就相當(dāng)于將一個二維的函數(shù)移動到另一個二維函數(shù)的所有位置,這樣的操作就是卷積操作。

    卷積操作可以說是圖像處理最基本的操作,但卻非常有用。它非常關(guān)鍵的特點就是是線性的,而且具有平移不變性shifi-invariant。平移不變性指我們在圖像的每個位置都執(zhí)行相同的操作。線性指這個操作是線性的,也就是我們用每個像素的鄰域的線性組合來代替這個像素。這兩個屬性使得這個操作非常簡單,因為線性操作是最簡單的,然后在所有地方都做同樣的操作就更簡單了,也就適合計算機運算了,處理速度就會加快。

    二維卷積需要4個嵌套循環(huán),所以影響了程序處理速度,通過是我們使用了較小的卷積核,3x3矩陣但是太小的矩陣又會影響銳化效果,較大的矩陣銳化效果好,計算速度就比較慢這是不可避免的一個矛盾。

    圖4是我們采用25x25的核運算獲得結(jié)果,我們可以看到銳化效果已經(jīng)比較讓人滿意。

    4 結(jié)語

    QT中引入了“信號-槽”機制后,程序中類的封裝機制得到相當(dāng)大的提高,同時引入了QCamera類使得了攝像頭相關(guān)的應(yīng)用程序開發(fā)變得十分快捷方便有效,一個攝像頭開發(fā)程序熟練的程序員只需要很短的時間就可以完成視頻流或者圖像信號的獲取,為后續(xù)的圖像應(yīng)用程序開發(fā)提供了大大的方便,是一種十分方便有效的攝像頭開發(fā)應(yīng)用工具。而且我們發(fā)現(xiàn),在做濾波銳化處理時,矩陣必須是奇數(shù)大小的二維矩陣,這樣才能保證濾波矩陣存在中心,不至于發(fā)生翻轉(zhuǎn)。至于矩陣的大小,也就是變換的半徑直接決定了變換的效果和計算機處理效率。另外,濾波器矩陣所有的元素之和應(yīng)該要等于l,這是為了保證濾波前后圖像的亮度保持不變。如果濾波器矩陣所有元素之和大于1,那么濾波后的圖像就會比原圖像更亮,反之,如果小于1,那么得到的圖像就會變暗。如果和為O,圖像不會變黑,但也會非常暗。

    參考文獻(xiàn)

    [1]凌曉春,陳安,胡躍明.適用于精密電子裝備的高分辨率圖像采集系統(tǒng)[J],儀表技術(shù)與傳感器,2011(10): 66-68.

    [2]黃宇升,劉金清.基于DSP的人臉檢測系統(tǒng)[J].電子測量技術(shù),2010,33 (02):71-74.

    [3]卞建林,繡花機電控系統(tǒng)花樣的代碼分析與實現(xiàn)[D].南京理工大學(xué),2007 (07).

    [4]連照亮,徐世國,基于Qt/Embedded在嵌入式Linux下的應(yīng)用研究[J],微計算機信息,2010 (17):81-82.

    [5]金繁,崔培雷.嵌入式Qt中信號與槽機制的研究[J],電子設(shè)計工程,2014 (24):168- 170.

    猜你喜歡
    攝像頭
    我起不來呀
    浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
    攝像頭連接器可提供360°視角圖像
    基于太赫茲技術(shù)的新一代攝像頭及其在安防領(lǐng)域的應(yīng)用探討
    電子測試(2018年13期)2018-09-26 03:30:34
    奔馳360°攝像頭系統(tǒng)介紹
    安裝攝像頭后為何無法使用耳麥?等
    南通市| 商水县| 上蔡县| 鄂托克前旗| 嘉兴市| 建始县| 彩票| 江城| 鞍山市| 夏津县| 南投县| 三门县| 垦利县| 郸城县| 普兰店市| 绥化市| 中阳县| 航空| 米易县| 密山市| 客服| 安多县| 牟定县| 扶绥县| 安化县| 荥经县| 开封县| 横峰县| 关岭| 雅安市| 云林县| 双流县| 漾濞| 建平县| 剑河县| 闽清县| 灵武市| 芜湖市| 建水县| 辽阳县| 色达县|