999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt開源框架的跨平臺圖像修復系統設計與實現

2016-11-11 03:20:06蘭林濤鄭鎮潮柳鄧一漫
軟件 2016年8期
關鍵詞:跨平臺界面用戶

蘭林濤,桂 彥,鄭鎮潮,柳鄧一漫,羅 京,王 朦

(長沙理工大學計算機與通信工程學院,湖南 長沙 410114)

基于Qt開源框架的跨平臺圖像修復系統設計與實現

蘭林濤,桂彥,鄭鎮潮,柳鄧一漫,羅京,王朦

(長沙理工大學計算機與通信工程學院,湖南 長沙410114)

目前,圖像修復技術已經在數字圖像處理領域中具有了實際的應用價值,尤其在部分受損圖像還原、去除圖像中遮擋物等方面可以取得良好的效果。本文著力于結合現有圖像修復技術的功能需求,實現能夠運行于主流操作系統平臺的、且具有良好用戶體驗的跨平臺圖像修復系統。在設計圖像修復系統的過程中,考慮到多平臺編譯使用的需求,我們采用了Qt開源框架用于用戶交互界面的處理,實現了Windows、Linux和MacOS三大主流操作系統的覆蓋。本文的研究內容主要包括以下兩個方面:(1)圖像修復算法實現。(2)用戶交互界面的設計與實現。通過良好的用戶交互設計實現了圖像修復系統。

Qt框架;跨平臺;圖像修復系統

本文著錄格式:蘭林濤,桂彥,鄭鎮潮,等. 基于Qt開源框架的跨平臺圖像修復系統設計與實現[J]. 軟件,2016,37(8):47-50

1 引言

圖像修補(Image Inpainting)是計算機圖形學與計算機視覺領域內一項具有挑戰性的難題[1],其主要目的是利用已有的圖像信息,將圖像中缺失區域部分的信息進行還原。在實際應用方面,圖像修復系統可應用于受損圖像的復原、去除圖像水印日期等。本文采用了一種交互式的快速圖像修補方法[1],通過先由用戶交互確定圖像的結構信息[2]進行結構化修補,而后再采用紋理合成方法[3-4]進行紋理區域填充,以達成實現圖像修復的目的。

Qt是一個跨平臺的C++應用程序開發框架,擁有GNU LGPL v. 2.1、GNU GPL v. 3.0以及商業授權三種授權方式,其跨平臺的特性使得它支持包括Windows、Linux、Mac OS在內的多種操作系統。目前,包括LG、Panasonic、Navico在內的多家企業均采用了Qt平臺作為開發框架,體現了Qt作為開發框架具有的廣泛應用價值。

為了使系統能夠實現跨平臺目標以及具有高效率的圖像修復能力,我們采用了C++作為主要編程語言,Qt平臺作為用戶界面框架,實現了高效、可應用于多平臺的圖像修復系統。

2 系統架構

2.1整體架構

基于Qt開源框架的跨平臺圖像修復系統總體上分為兩個子系統,分別為以圖像修復算法為主體的圖像修復系統和以用戶操作為主體的交互系統,這兩部分系統如圖1所示。

圖1 系統整體架構圖Fig. 1 Overall system architecture

2.2系統運行環境及框架版本要求

基于Qt開源框架的跨平臺圖像修復系統主要通過結構修補與紋理修補算法實現預期目標。在修復過程中,主要性能開銷在于頻繁對像素進行讀寫與使用CPU資源進行紋理修復計算所耗費的時間。系統實現所采用的QImage本身提供了高效的像素讀取與設定接口,但由于其運行時存儲圖像數據會占用較大的內存空間,過小的運行內存會導致程序發生虛擬內存交換從而降低其I/O性能,因此推薦使用擁有更高運行頻率的CPU與更大內存空間的計算平臺運行本系統。

本系統設計的另一個目標為跨平臺,即還可編譯運行在Linux、Mac OS平臺上,系統配置要求與Windows平臺要求相同。為了實現良好的運行效果,在系統編寫階段便要求所有功能函數均實用Qt框架提供的庫函數,不直接調用系統提供的API,以保證兼容性。由于Qt框架本身具有跨平臺特性,因而在框架所支持的操作系統范圍內,只要代碼調用的功能不涉及某一系統專有的特性與功能函數即可實現跨平臺的目標。本系統采用的Qt版本為5.5.1。

3 圖像修復算法實現

3.1系統總體流程圖

系統采用單界面操作方式,通過點按功能按鈕與鼠標交互實現對應功能。系統總的工作流程如圖2所示。

3.2圖像修復算法流程圖

圖像修復算法的過程依次分為用戶繪制修補區域與結構曲線、結構修補和圖像紋理修補三個部分,圖像修復流程如圖3所示。在打開待修復的圖像之后,用戶首先交互指定待修復區域;然后,用戶在待修復區域中繪制結構信息,其中,結構信息主要指的是圖像中直線型的結構。我們將從已繪制結構曲線的延長線上選取候選圖像子塊進行結構修補。最后是在大面積紋理區域的修補。當系統在掃描到任意一個待修補像素點時,則采用紋理合成方法[3-4]進行修復,直至圖像修復完畢。

圖2 系統工作流程圖Fig. 2 Work flowchart for image inpainting system

圖3 圖像修復算法流程圖[1]Fig. 3 Flowchart of Image inpainting algorithm[1]

4 交互設計與實現

4.1顯示界面模塊

4.1.1圖像縮放模塊設計思路

圖像縮放模塊兼具圖像顯示功能,主要作用為將待修復圖像信息顯示在GUI界面上,通過對顯示圖像內容進行縮放可兼顧高分辨率圖像的精準選區與繪制結構功能,提高繪制的準確性。程序默認縮放大小為100%,可根據用戶需要在10%~300%間自由縮放。

Qt平臺顯示圖像的控件為QGraphicsView,運行時可讀入QImage內容進行顯示。系統的圖像處理信息存儲在QImage內,每次顯示均使用獨立的QImage進行縮放處理[5],保證圖像數據不受顯示縮放干擾。

4.1.2指針響應模塊設計思路

考慮到傳統的鼠標樣式(箭頭)不適用于圖像區域選取的定位,通過QCursor的setCursor函數動態改變鼠標樣式,以實現更好的指示效果。在QGraphicsView顯示范圍內,鼠標指針樣式為十字形,保證精準定位,在顯示外部則恢復為箭頭形。

4.1.3界面元素響應模塊設計思路

Qt提供了QHBoxLayout、QVBoxLayout、QGridLayout等的基本布局管理,分別是水平排列布局、垂直排列布局和網格排列布局[6]。布局之間可以相互嵌套實現自適應窗口大小的效果,在本系中主要采用了QHBoxLayout與QVBoxLayout相互嵌套的形式實現自適應窗口大小功能,其中界面布局設計如圖4(a)所示,以及程序界面布局效果如圖4(b)所示。

4.2輔助功能模塊

4.2.1坐標系轉換模塊設計思路

在使用圖像縮放功能、載入高分辨率圖片時,QGraphicsView會自動調用滾動塊進行圖片顯示,此時用戶操作獲取的鼠標坐標仍然為以QGraphicsView模塊左上角為原點的坐標,需要進行坐標系轉換為基于圖像的坐標系以保證未知區域選取與圖像結構曲線繪制的準確[7]。

圖4 用戶交互界面實現Fig. 4 User interface implementation

4.2.2文件存儲模塊設計思路

Qt原生提供了多個可操作圖像的類,其中QImage可在具有文件讀取、存儲功能的同時提供了可對單個像素進行編輯的接口,為簡化程序提供了可能。QImage支持的文件包括BMP、JPG、JPEG、PNG等常用圖像格式的讀取與保存。

在QImage中,開發者可通過setPixel函數對圖像中單個像素點的RGB值進行設定,該函數可接收三個參數,分別為需要操作像素的坐標和需要設置的顏色值。在32-bit下的像素操作如圖5所示。

4.2.3撤銷恢復模塊設計思路

系統采用QImage存儲運行時的圖像信息,使用Stack來實現撤銷/恢復功能,在每個用戶操作前自動將保存當前圖像信息的指針至Stack中,在需要時返回。由于QImage在打開圖像時對內存占用較高,當程序實例對圖像操作次數過多時,會因保存撤銷信息而占用較大的內存,這是接下來需要解決的一個問題。

圖5 QImage在32-bit下的像素操作Fig. 5 QImage pixel operation under 32-bit

4.2.4加速鍵模塊設計思路

系統用戶操作方式采用了鼠標交互與鍵盤輸入相結合的方式,用戶可通過鼠標實現所有系統功能,也可以通過鍵盤的加速鍵加速操作。

Qt對每個界面元素均提供了keypressevent[7]函數用于響應用戶的鍵盤操作。每當用戶操作鍵盤時,系統將發射一個信號通知程序,并傳入一個QKeyEvent作為具體按鍵的載體。QKeyEvent類中有函數key和modifier,key函數返回的是發生時間的按鍵值,modifier返回的是修飾鍵[8],通過重載keypressevent函數即可實現加速鍵功能。

5 基于QT開源框架的跨平臺圖像修復系統測試

我們開發的基于QT開源框架的跨平臺圖像修復系統,首先在Windows環境下進行了功能實現與交互設計,實現了預期的圖像修復功能。圖6中測試用圖展示了系統在對圖像目標移除(水印處理)的應用場景,圖6(a)的“Think”字樣經過處理后被抹去,修復后的效果如圖6(b)所示。圖6中的(c)、(d)為在對具有破損圖像修復后的結果。另外,還采用了Ubuntu系統作為Linux平臺的測試環境。

圖6 圖像修復效果圖Fig. 6 Image inpainting results

6 結論

利用上述的圖像修復算法與用戶交互設計完成的圖像修復系統,可運行于Windows、Linux、MacOS等多個平臺,通過用戶選定修補區域與繪制結構信息完成修補工作。經過多次代碼調試與界面美化,上述功能都能夠實現并達到了預期設計目標。當然,本圖像修復系統還是需要繼續優化的,通過優化修復算法、簡化用戶操作流程、改變運行時數據存儲結構實現更高的修復效率與更低的計算機性能要求,我們將在以后的研究中繼續優化改進。

[1] 路平. 快速結構化圖像修補[J]. 中國圖象圖形學報, 2010, (6): 931-935. Lu P.Fast Structural Image Completion[J]. Journal of Image and Graphics, 2010, (6):931-935. (in Chinese)

[2] Sun J, Shum H Y. Image completion with structure propagation: ACM, US7502521[P]. 2009.

[3] Michael Ashikhmin. Synthesizing Natural Textures. 2001 ACM Symposium on Interactive 3D Graphics, 217–226, March 2001.

[4] 胡云康, 姜 蘇, 吳志榮, 等. 基于改進的紋理合成圖像修復算法[J]. 軟件, 2016, 37(4): 60-63. Hun Y K, Jiang S, Wu Z L, An Improved Image Restoration Algorithm Based on Texture Synthesis[J]. Software, 2016, 37(4): 60-63.

[5] 薩默菲爾德. Qt高級編程[M]. 電子工業出版社, 2011. SummerfieldM. Qt advanced programming[M]. Beijing: Electronic Industry Press, 2011. (in Chinese)

[6] 徐睿, 韋璐. 基于QT 的數字邏輯虛擬實驗平臺設計[J].軟件, 2016, 37(01): 101-104. Xu R, Wei L. Design of Digital Logic Virtual Experiment Platform Based on QT[J]. Software, 2016,37(01):101-104.

[7] 何建倉, 侯澤民. 嵌入式Qt環境下繪圖軟件的設計與實現[J]. 軟件, 2014, 35(5): 45-47. He J C, Hou Z M. The design and implementation of drawing software under the embedded Qt environment[J]. Software, 2016, 35(5): 45-47.

[8] 曹素娥, 楊澤民. 基于Qt的ATM機系統的分析與設計[J].軟件, 2014, 35(1): 1-3, 31. Cao S E, Yang Z M. Analysis and Design of ATM System Based on Qt[J]. Software, 2014, 35(1): 1-3, 31.

Design and Implementation of Image Inpainting System Based on Qt Open Source Framework

LAN Lin-tao, GUI Yan, ZHENG Zhen-chao, LIU Deng-yi-mang, LUO Jing, WANG Meng
(School of Computer and Communication Engineering, Changsha University of Science and Technology, Changsha 410114, China)

At present, image inpainting technology has practical application in the field of digital image processing, especially region filling and object removal in the image. In this paper, we focus on the functional requirements of the existing image inpainting technology, which devote to develop an image inpainting system with a good user experience. During image inpainting system design, taking into account the multi-platform compiler use demanded, we use Qt for the user interface, which is compatible with Windows, Linux and Mac OS. The research content of this paper mainly includes the following two aspects: (1) the realization of image inpainting algorithm. (2) the design and implementation of user interface. The image inpainting system is realized through the good user interaction design.

Qt open source framework; Cross-platform; Image inpainting system

TP311

A

10.3969/j.issn.1003-6970.2016.08.010

2016年長沙理工大學教學改革研究項目(項目編號:JG1660);2016年長沙理工大學大學生研究性學習和創新性實驗計劃項目(長理工大教[2016]7號-133)。

蘭林濤(1996-),男,本科生,主要研究方向:模式識別與圖像處理。

通訊聯系人: 桂彥,講師,碩士生導師,博士,主要研究方向:圖像處理、模式識別。

猜你喜歡
跨平臺界面用戶
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 国产精品无码AV中文| 午夜无码一区二区三区| 日本福利视频网站| 亚洲福利网址| 成年人视频一区二区| 国内自拍久第一页| 日韩小视频在线观看| 欧美黄网在线| 欧美另类一区| 99精品在线视频观看| 无码精品国产VA在线观看DVD| 久久精品无码中文字幕| 一本大道香蕉中文日本不卡高清二区| 91网红精品在线观看| 日韩二区三区无| 亚洲 成人国产| 日本午夜在线视频| 精品三级在线| 国产精品3p视频| 毛片久久网站小视频| 亚洲国产日韩视频观看| 在线va视频| 久久精品亚洲热综合一区二区| 视频一区视频二区中文精品| 久久国产热| 久久国产免费观看| 韩国自拍偷自拍亚洲精品| 国产免费人成视频网| 91午夜福利在线观看| 亚洲精品久综合蜜| 91麻豆国产视频| 五月天香蕉视频国产亚| 久久99国产综合精品1| 99九九成人免费视频精品| 亚洲无线视频| 国产青榴视频| 国产精品偷伦视频免费观看国产| 亚洲码一区二区三区| 久久一本精品久久久ー99| 丁香婷婷久久| 亚洲人成色77777在线观看| 国产熟女一级毛片| 亚洲第一天堂无码专区| 成人中文在线| 国产福利在线观看精品| 国产精品亚洲五月天高清| 成年人视频一区二区| 国模视频一区二区| 色九九视频| 波多野结衣一区二区三视频| 有专无码视频| 五月天综合网亚洲综合天堂网| 久久久久人妻精品一区三寸蜜桃| 香蕉久久国产精品免| 亚洲一区二区三区中文字幕5566| 国产成人精品无码一区二| 婷五月综合| 韩日无码在线不卡| 成人91在线| 国产噜噜噜| 国产福利一区二区在线观看| 成年A级毛片| 人妻丝袜无码视频| a级毛片免费网站| 国产午夜小视频| 人人艹人人爽| 伊在人亚洲香蕉精品播放| 日本午夜三级| 成人夜夜嗨| 久久精品人人做人人| 久久精品一品道久久精品| 男人的天堂久久精品激情| 2021天堂在线亚洲精品专区| 国产午夜一级淫片| 日韩在线欧美在线| 国产在线一区二区视频| 国产成人亚洲综合A∨在线播放| 亚洲一区无码在线| 五月婷婷丁香综合| 激情六月丁香婷婷四房播| 亚洲成a人片在线观看88| 欧美国产综合视频|