国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenCV與Java的圖像處理自主學(xué)習(xí)軟件設(shè)計(jì)

2019-10-15 02:21陳小宇魏靜靜
軟件導(dǎo)刊 2019年8期
關(guān)鍵詞:圖像處理

陳小宇 魏靜靜

摘 要:《數(shù)字圖像處理》課程存在理論知識(shí)枯燥、實(shí)踐性強(qiáng)和學(xué)習(xí)難度大等問題。為了幫助學(xué)生自主學(xué)習(xí)該課程,利用JavaGUI組件和OpenCV圖像處理庫設(shè)計(jì)了圖像處理學(xué)習(xí)軟件平臺(tái),實(shí)現(xiàn)圖像濾波、圖像增強(qiáng)、圖像加噪、圖像翻轉(zhuǎn)等常用功能,且可任意添加或刪除某一功能。實(shí)驗(yàn)結(jié)果表明,該平臺(tái)具有操作方便、代碼開源、直觀形象的特點(diǎn),加深了學(xué)生對(duì)理論知識(shí)的理解,有助于提高學(xué)生自主學(xué)習(xí)能力。

關(guān)鍵詞:圖像處理;學(xué)習(xí)軟件; JavaGUI;OpenCV圖像庫

DOI:10. 11907/rjdk. 182785 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)008-0116-03

Design of Image Processing Autonomous Learning Software

Based on OpenCV and Java

CHEN Xiao-yu,WEI Jing-jing

(Central China Normal University,Academy of Physical Science and Technology,Wuhan 430079,China)

Abstract: The course of Digital Image Processing suffers from problems like dull theoretical knowledge, stronger practicality and difficulty in learning. In order to help students to learn the course independently, we have designed an image processing learning software platform based on JavaGUI components and OpenCV image processing library, which realizes some common function modules, image filtering, image enhancement,image noise addition, image rollover and other common functions. Meanwhile, it can add or delete some function modules arbitrarily. It is confirmed that the platform has the characteristics of easy operation, open source code and visual image, and it contributes to enhance students understanding of theoretical knowledge and improve students ability of autonomous learning.

Key Words: image processing; learning software; JavaGUI; OpenCV image library

基金項(xiàng)目:華中師范大學(xué)基本科研業(yè)務(wù)費(fèi)專項(xiàng)資金項(xiàng)目(CCNU16A02018)

作者簡(jiǎn)介:陳小宇(1972-),男,博士,華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院副教授、碩士生導(dǎo)師,研究方向?yàn)楣怆娦盘?hào)檢測(cè)、信號(hào)與信息處理、嵌入式系統(tǒng)與應(yīng)用;魏靜靜(1992-),女,華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院碩士研究生,研究方向?yàn)閳D像處理。

0 引言

《數(shù)字圖像處理》課程是很多高校信息類專業(yè)重要的基礎(chǔ)課[1]。該課程具有知識(shí)體系嚴(yán)謹(jǐn)、概念抽象、理論推導(dǎo)繁瑣復(fù)雜、理論與實(shí)際聯(lián)系緊密等特點(diǎn)[2]。

授課一般采用理論講解、公式推導(dǎo)和Matlab演示相結(jié)合的方式,使抽象的理論知識(shí)具體化和形象化。張曉強(qiáng)等[3]利用Matlab圖形用戶接口設(shè)計(jì)了一個(gè)具有常見圖像處理功能的演示平臺(tái),實(shí)現(xiàn)了該課程中核心教學(xué)內(nèi)容的交互式仿真;肖龍飛等[4]利用Matlab GUI 設(shè)計(jì)的數(shù)字圖像教學(xué)軟件,涵蓋圖像空間域處理、圖像頻率域處理和插值放大3大模塊,滿足本科課程的基本教學(xué)需求;楊淑瑩等[5]基于VC++6.0開發(fā)了一套集理論教學(xué)與實(shí)驗(yàn)教學(xué)于一體的軟件設(shè)計(jì)方法;張雁騰等[6]利用可視化編程語言VC++的MFC功能,針對(duì)數(shù)字圖像處理內(nèi)容編寫了GUI人機(jī)交互圖形用戶界面。這些平臺(tái)主要用于教師作教學(xué)演示,具有交互性,但學(xué)生不能查看其函數(shù)庫內(nèi)部的具體實(shí)現(xiàn)過程,不利于學(xué)生深刻理解圖像處理技術(shù)。本文采用JavaGUI組件和OpenCV圖像處理庫相結(jié)合的方式設(shè)計(jì)學(xué)習(xí)平臺(tái),使學(xué)生在學(xué)習(xí)理論知識(shí)的同時(shí),可以自主查看并學(xué)習(xí)函數(shù)的具體實(shí)現(xiàn)過程(OpenCV的開源性[7-10])。Java語言具有跨平臺(tái)性[11-12],因此該軟件可以運(yùn)行在不同的操作系統(tǒng)上,更便于學(xué)生自主學(xué)習(xí)。

1 系統(tǒng)架構(gòu)

本文根據(jù)常用的圖像處理基本操作流程和圖像處理技術(shù)設(shè)計(jì)學(xué)習(xí)平臺(tái)。首先設(shè)計(jì)一個(gè)含有開放源碼的可視化圖像處理操作界面,然后對(duì)這個(gè)界面中所列出的功能進(jìn)行后臺(tái)回調(diào)函數(shù)編寫,從而完成整個(gè)圖像處理學(xué)習(xí)系統(tǒng)設(shè)計(jì)。系統(tǒng)由拍照、圖像加噪、圖像濾波、圖像翻轉(zhuǎn)、圖像特殊處理和幫助6個(gè)功能模塊構(gòu)成,結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)框架結(jié)構(gòu)

拍照為一個(gè)單獨(dú)模塊,其首要作用是為了驗(yàn)證Java對(duì)OpenCV圖像庫的調(diào)用以及文件操作是否成功,其次用來實(shí)現(xiàn)拍照功能。

系統(tǒng)設(shè)計(jì)關(guān)鍵步驟:①明確教學(xué)系統(tǒng)實(shí)現(xiàn)的主要功能,應(yīng)該包含哪些模塊;②先畫出大概的圖像處理教學(xué)軟件的界面草圖,然后稍作修改,最后確定界面布局方案;③根據(jù)最終方案,使用Java語言GUI組件在Eclipse平臺(tái)上編寫圖形操作界面及其它菜單項(xiàng)目;④編寫每個(gè)菜單的功能回調(diào)函數(shù)并逐項(xiàng)進(jìn)行功能檢查,排除所有功能Bug使系統(tǒng)穩(wěn)定運(yùn)行;⑤完成幫助部分,詳細(xì)說明軟件操作指南。

2 系統(tǒng)設(shè)計(jì)

2.1 關(guān)鍵點(diǎn)設(shè)計(jì)

本學(xué)習(xí)軟件內(nèi)部參數(shù)和變量較多,正確設(shè)置各個(gè)參數(shù)及明確各參數(shù)之間的關(guān)系至關(guān)重要。任何一個(gè)函數(shù)在操作之前都要確定操作對(duì)象,確保不同回調(diào)函數(shù)與圖像數(shù)據(jù)之間傳輸?shù)恼_性。在軟件啟動(dòng)時(shí),默認(rèn)打開拍照界面(見圖2拍照操作界面),以驗(yàn)證Java與OpenCV圖像處理庫的鏈接是否成功。

圖2 拍照操作界面

2.2 圖像濾波

圖像濾波指在盡量保留原圖像特征的條件下對(duì)圖像進(jìn)行噪聲抑制。濾波方法可分為空域?yàn)V波和頻域?yàn)V波[13-14],這里主要講解空域?yàn)V波??沼?yàn)V波即直接對(duì)像素灰度值進(jìn)行處理,如式(1)所示。其中,[f(x,y)]為原圖像的像素灰度值,[g(x,y)]為處理后的像素灰度值,T是作用于[(x,y)]鄰域的算子。

[g(x,y)=T[f(x,y)]]? ? ? ? ? ? ? ? (1)

該功能模塊主要實(shí)現(xiàn)中值濾波與均值濾波兩種方法。

中值濾波是常用的非線性濾波方法,其主要思想是對(duì)像素鄰域向量化取中值進(jìn)行濾波,其運(yùn)算簡(jiǎn)單、高效,如式(2)所示。

[Vout=median{a1,a2,a3,?,an}]? ? ? ?(2)

核心操作代碼如下:

Mat srcImage = Imgcodecs.imread("picture_path");

Mat dstImage = srcImage.clone();

Imgproc.blur(srcImage,dstImage,newSize(9,9),newPoint(-1,-1), core.BORDER_DEFAULT);

Imgcodecs.imwrite("D:\\java_opencv\\blur.jpg", dstImage);

均值濾波又稱鄰域平均法,將單個(gè)像素及指定鄰域內(nèi)的所有像素按某種規(guī)則或模板計(jì)算平均灰度值,作為新圖像中的對(duì)應(yīng)像素值。均值濾波模板為ones(m,n),模板內(nèi)所有元素均為1,它們的權(quán)重相同,其降噪平滑后的圖像表達(dá)式如下:

[g(x,y)=1M(i,j)∈sg(i,j)]? ? ? ? ? ? (3)

其中,s是點(diǎn)[(x,y)]鄰域內(nèi)的點(diǎn)集,M是點(diǎn)集s中的總點(diǎn)數(shù)。

核心操作代碼如下:

Mat srcImage = Imgcodecs.imread("picture_path");

Mat dstImage = srcImage.clone();

Imgproc.medianBlur(srcImage, dstImage, 7);

Imgcodecs.imwrite("D:\\java_opencv\\medianBlur.jpg", dstImage);

濾波操作界面如圖3所示。

圖3 濾波操作界面

2.3 圖像加噪

噪聲可以看作隨機(jī)信號(hào),具有統(tǒng)計(jì)學(xué)上的特征屬性[15]。常見的噪聲有高斯噪聲和椒鹽噪聲[16]。高斯噪聲由攝像機(jī)傳感器元器件內(nèi)部產(chǎn)生,可用上述的均值濾波去除噪聲,它的概率密度函數(shù)服從高斯分布[17],見式(4)。椒鹽噪聲是切割圖像時(shí)產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲,椒即黑,鹽即白,是一種因?yàn)樾盘?hào)脈沖強(qiáng)度引起的噪聲,又稱脈沖噪聲,可通過上述的中值濾波很好地去除,其概率密度函數(shù)表達(dá)式如式(5)所示。

[P(z)=12πσe-(z-μ)2/2σ2]? ? ? ? ? ? ? ? ? ? (4)

[P(z)=Pa,z=aPb,z=b0,other]? ? ? ? ? ? ? ? ? ? ? ? ? (5)

2.4 圖像翻轉(zhuǎn)

圖像翻轉(zhuǎn)操作是最基礎(chǔ)也是最重要的一種圖像幾何變換。幾何變換直觀上是改變圖像的大小、方向等,實(shí)則是對(duì)圖像像素空間關(guān)系的改變[18]。翻轉(zhuǎn)又稱圖像的鏡像,分為垂直鏡像和水平鏡像兩種。水平鏡像是翻轉(zhuǎn)后圖像每個(gè)像素點(diǎn)的橫坐標(biāo)與翻轉(zhuǎn)前對(duì)應(yīng)像素點(diǎn)的橫坐標(biāo)關(guān)于圖像的豎直中心線對(duì)稱,即左右翻轉(zhuǎn);垂直鏡像則是翻轉(zhuǎn)后圖像每個(gè)像素點(diǎn)的縱坐標(biāo)與翻轉(zhuǎn)前對(duì)應(yīng)像素點(diǎn)的縱坐標(biāo)關(guān)于圖像的水平中心線對(duì)稱,即上下翻轉(zhuǎn)。該功能模塊主要實(shí)現(xiàn)這兩種翻轉(zhuǎn)操作。

2.5 特殊處理

特殊處理模塊包含灰度化操作和直方圖統(tǒng)計(jì)操作。

將一幅彩色圖像變換成單一灰色圖像的過程即為灰度化[19],如一幅彩色圖像的深度為8,那么一個(gè)像素點(diǎn)就有[255×255×255]種顏色變化范圍,而灰度化后像素變換范圍為255種,大大減少了圖像內(nèi)存,后續(xù)操作處理計(jì)算量少、運(yùn)算速度快、內(nèi)存占用量少,因此一般進(jìn)行圖像處理時(shí)會(huì)先將圖像轉(zhuǎn)化為灰度圖像。

灰度直方圖是對(duì)一幅圖像中出現(xiàn)的各個(gè)灰度等級(jí)的一種統(tǒng)計(jì)表示,通過直方圖可以看出圖像的灰度分布情況[20]。圖像的視覺效果與其直方圖有著對(duì)應(yīng)關(guān)系,每一幅圖像都有自己對(duì)應(yīng)的直方圖,不同圖像對(duì)應(yīng)的直方圖也不一樣。直方圖是圖像處理的一種基本操作,通過觀察直方圖,可以分析圖像的灰度范圍、分布情況、整幅圖像的亮度均值以及亮暗對(duì)比度等,以此為基礎(chǔ)對(duì)圖像進(jìn)行后續(xù)處理。

3 應(yīng)用效果分析

為評(píng)估圖像處理學(xué)習(xí)平臺(tái)對(duì)學(xué)生自主學(xué)習(xí)情況的影響,將學(xué)習(xí)《數(shù)字圖像處理》課程的學(xué)生分為5個(gè)班,分別進(jìn)行目的性試驗(yàn)學(xué)習(xí)測(cè)試。其中一班、二班、三班學(xué)生未進(jìn)行自主學(xué)習(xí)實(shí)踐操作,四班、五班學(xué)生安裝該學(xué)習(xí)軟件并進(jìn)行自主學(xué)習(xí)實(shí)踐操作。

3.1 學(xué)生成績(jī)分析

成績(jī)的統(tǒng)計(jì)分析在一定程度上可以反映學(xué)生自主學(xué)習(xí)狀況,各班學(xué)生成績(jī)情況如表1所示。表1數(shù)據(jù)表明:與一班、二班和三班相比,四班和五班學(xué)生成績(jī)中優(yōu)秀和良好的比例均較高,平均分明顯提高,中等和及格的比例較低。

表1 學(xué)生成績(jī)情況? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(%)

3.2 學(xué)生問卷調(diào)查

問卷調(diào)查能反映出學(xué)生對(duì)該平臺(tái)的認(rèn)可度。對(duì)四班和五班的學(xué)生進(jìn)行問卷調(diào)查,如表2所示。表2中數(shù)據(jù)表明:認(rèn)為該平臺(tái)對(duì)學(xué)生學(xué)習(xí)起作用的人所占比例為96.2%,推薦使用該平臺(tái)的人所占比例為95.7%。

表2 問卷調(diào)查內(nèi)容及結(jié)果? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(%)

4 結(jié)語

本文利用Java語言的跨平臺(tái)性和OpenCV開源性特點(diǎn)設(shè)計(jì)了圖像處理自主學(xué)習(xí)軟件,充分激發(fā)了學(xué)生自主學(xué)習(xí)的興趣。通過改變輸入?yún)?shù)進(jìn)行學(xué)習(xí),加深對(duì)數(shù)字圖像處理理論知識(shí)的理解,進(jìn)一步提高學(xué)生的編程能力。但該平臺(tái)內(nèi)容還不夠豐富,后期可添加一些與圖像處理技術(shù)相關(guān)的應(yīng)用進(jìn)行完善。

參考文獻(xiàn):

[1] 杜云明,郝兵,劉文科. 《數(shù)字圖像處理》課程任務(wù)驅(qū)動(dòng)教學(xué)模式的實(shí)踐[J]. 中國(guó)電力教育,2013(10):113-114.

[2] 梁志貞,江海峰,楊小冬. 基于“卓越計(jì)劃”的《數(shù)字圖像處理》課程教學(xué)改革實(shí)踐[J]. 高教學(xué)刊,2016(3):146-147.

[3] 張曉強(qiáng),王雪松. 基于Matlab GUI的圖像處理演示平臺(tái)設(shè)計(jì)[J]. 中國(guó)醫(yī)學(xué)教育技術(shù),2018,32(3):279-281.

[4] 肖龍飛,李金龍,楊凱. 基于Matlab的數(shù)字圖像處理教學(xué)軟件的設(shè)計(jì)[J]. 信息技術(shù),2014(12):185-187.

[5] 楊淑瑩,張樺. 《數(shù)字圖像處理》教學(xué)軟件的開發(fā)設(shè)計(jì)[J]. 天津師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009,29(4):76-80.

[6] 張雁騰,黃勇, 朱昌洪,等. 《數(shù)字圖像處理》可視化教學(xué)軟件的設(shè)計(jì)[J]. 電子技術(shù)與軟件工程, 2017(14):74-75.

[7] 陰法名. 基于OpenCV圖像處理[J]. 科技信息,2009(32):220-221.

[8] 黎松,平西建,丁益洪. 開放源代碼的計(jì)算機(jī)視覺類庫OpenCv的應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用與軟件,2005,22(8):134-136.

[9] 方玫,喻擎蒼,李華強(qiáng). C++Builder下基于OpenCV的數(shù)字圖像處理[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2008, 29(4):882-884.

[10] ZELINSKY A. Learning OpenCV—computer vision with the opencv library[J]. IEEE Robotics & Automation Magazine,2009,16(3):100-101.

[11] 高彥卿. Java語言特點(diǎn)與未來發(fā)展趨勢(shì)探析[J]. 中國(guó)電子商務(wù), 2013(21):50-51.

[12] 韋東. Java語言與Java技術(shù)[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用, 2011(18):208-209.

[13] PELI T,LIM J S. Adaptive filtering for image enhancement[C].? IEEE International Conference on Acoustics, Speech, & Signal Processing. IEEE, 1982.

[14] MCADAMS H P, JOHNSON G A,SUDDARTH S A,et al. Implementation of adaptive filtration for digital chest imaging[J]. Optical Engineering, 1987, 26(7):669-674.

[15] 王連利,劉增力,劉康,等. 基于灰度直方圖的單一圖像噪聲類型識(shí)別研究[J]. 軟件導(dǎo)刊,2018,17(4): 197-200.

[16] 郭忠明. 基于CUDA的并行圖像處理性能優(yōu)化[D]. 大連:大連理工大學(xué),2012.

[17] 岡薩雷斯. 數(shù)字圖像處理[M]. 北京: 電子工業(yè)出版社, 2005.

[18] 徐鵬飛. 圖像處理中幾種幾何變換的實(shí)現(xiàn)[J]. 電腦知識(shí)與技術(shù), 2017(35):210-211.

[19] 付欽學(xué). 循環(huán)流化床鍋爐排渣含碳量在線檢測(cè)方法設(shè)計(jì)[D]. 北京:華北電力大學(xué), 2014.

[20] 蘇慧娟,于正林,張桂林. 基于OpenCV的圖像處理[J].? 科技資訊,2014,12(8):18-19.

(責(zé)任編輯:杜能鋼)

猜你喜歡
圖像處理
海戰(zhàn)場(chǎng)偵察圖像處理技術(shù)圖譜及應(yīng)用展望
人工智能輔助冠狀動(dòng)脈CTA圖像處理和診斷的研究進(jìn)展
基于ARM嵌入式的關(guān)于圖像處理的交通信號(hào)燈識(shí)別
基于圖像處理的機(jī)器人精確抓取的設(shè)計(jì)與實(shí)現(xiàn)
機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
Bayesian-MCMC算法在計(jì)算機(jī)圖像處理中的實(shí)踐
改進(jìn)壓縮感知算法的圖像處理仿真研究
基于圖像處理的定位器坡度計(jì)算
基于圖像處理的晶圓表面缺陷檢測(cè)
對(duì)圖像處理中ROF全變分模型的兩種算法的比較研究
易门县| 穆棱市| 上犹县| 象山县| 凌海市| 措勤县| 修武县| 祁连县| 勃利县| 新郑市| 裕民县| 和田市| 安庆市| 华安县| 正阳县| 台前县| 揭东县| 萍乡市| 呼玛县| 丰台区| 海晏县| 临湘市| 黄梅县| 安达市| 长子县| 温宿县| 扶沟县| 营口市| 毕节市| 鄂伦春自治旗| 客服| 永城市| 苗栗市| 涟水县| 治多县| 奉化市| 山丹县| 陵川县| 明溪县| 深泽县| 宣武区|