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跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 色综合五月婷婷| 欧美成人在线免费| 高清无码手机在线观看| 91破解版在线亚洲| 男女男免费视频网站国产| 日日碰狠狠添天天爽| 亚洲精品无码不卡在线播放| 99久久免费精品特色大片| 高潮毛片免费观看| 在线观看国产网址你懂的| 亚洲中文字幕av无码区| 国产精品午夜电影| 72种姿势欧美久久久大黄蕉| 欧美h在线观看| 美女无遮挡免费网站| 一级一级特黄女人精品毛片| 欧美97色| www.99在线观看| 亚洲中久无码永久在线观看软件| 国产欧美精品一区二区| 久久人体视频| 日韩精品成人网页视频在线| 91精品国产麻豆国产自产在线| 天天操天天噜| 波多野结衣无码视频在线观看| 欧美日韩久久综合| 一区二区三区国产| 99久久精品国产精品亚洲| 538国产视频| 国产拍在线| 九九九九热精品视频| 一级全黄毛片| 国产第一页亚洲| 国产 在线视频无码| 亚洲第一区精品日韩在线播放| 尤物视频一区| 日韩午夜伦| 波多野结衣第一页| 2020国产免费久久精品99| 国产欧美高清| 亚洲色图欧美激情| 亚洲成人高清在线观看| 午夜毛片福利| 国产主播一区二区三区| 欧美不卡视频在线| 伊人无码视屏| 欧美精品成人一区二区在线观看| 日韩av无码DVD| 色九九视频| 真人免费一级毛片一区二区| 国产成人精品日本亚洲| 日韩国产高清无码| 亚洲国产成人综合精品2020 | 国产九九精品视频| 国内精自线i品一区202| 国产激情无码一区二区免费| 国产黄网永久免费| 欧美一级夜夜爽www| 亚洲美女一区| 久青草免费视频| 国产成人精品日本亚洲77美色| 国产一线在线| 国产午夜无码专区喷水| 国产麻豆精品在线观看| 国产成人av一区二区三区| 亚洲人成网站18禁动漫无码| 国产精品成人久久| 久久99这里精品8国产| 久久伊人久久亚洲综合| 91日本在线观看亚洲精品| 欧美成人区| 亚洲国产精品美女| 国产第一页亚洲| 亚洲色图欧美在线| 五月激情婷婷综合| 四虎永久在线| 国产视频入口| 五月婷婷丁香色| 国产美女精品一区二区| 99伊人精品| AV色爱天堂网| 五月婷婷亚洲综合|