




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章
基于模型驅(qū)動(dòng)法的圖像處理綜合應(yīng)用學(xué)習(xí)目標(biāo)1.能編程實(shí)現(xiàn)變換域圖像融合。2.會(huì)給一幅圖像增加水印。3.能對(duì)特定圖像提取既定目標(biāo)。4.初步學(xué)會(huì)進(jìn)行圖像圖形化處理。5.能用MATLAB熟練進(jìn)行動(dòng)畫(huà)制作和圖像軟件開(kāi)發(fā)。本章內(nèi)容11.1.1圖像融合概述
11.1圖像融合
圖像融合是信息融合領(lǐng)域以圖像為對(duì)象的融合,是對(duì)兩個(gè)或兩個(gè)以上的傳感器在同一時(shí)間或不同時(shí)間獲取的關(guān)于同一場(chǎng)景的圖像或圖像序列信息進(jìn)行綜合并生成一幅新圖像的過(guò)程。圖像融合可分為像素級(jí)融合、特征級(jí)融合和決策級(jí)融合。像素級(jí)融合是按照某些融合規(guī)則,逐像素或逐區(qū)域地選擇或合并原始圖像的信息,形成一幅融合圖像特征級(jí)融合是利用原始圖像中提取出的某些特征如形狀特征、運(yùn)動(dòng)特征等進(jìn)行合并,是中間層次的信息融合。決策級(jí)融合是通過(guò)合并對(duì)原始圖像的初步判決和決策形成最終的聯(lián)合判決,是最高層次的信息融合。11.1.2
像素級(jí)圖像融合過(guò)程
11.1圖像融合
像素級(jí)圖像融合首先需要對(duì)原始圖像進(jìn)行嚴(yán)格的配準(zhǔn),然后依據(jù)既定的融合規(guī)則(如灰度值取大、加權(quán)平均)等進(jìn)行逐像素或區(qū)域的合并。
融合過(guò)程如下:圖11.1像素級(jí)圖像融合基本過(guò)程11.1圖像融合像素級(jí)圖像融合一般分為空域和變換域兩大類(lèi)方法。在空域中,按照某些規(guī)則直接對(duì)像素或區(qū)域進(jìn)行線性或非線性合并,主要采用亮度—色度—飽和度變換法、加權(quán)平均法、主成分分析法、獨(dú)立成分分析法等。在變換域中,常用的是多尺度變換方法。
多尺度變換融合一般都按如下步驟進(jìn)行:(1)把原始圖像分別分解成一系列不同尺度的高頻和低頻成分;(2)依據(jù)特定的融合規(guī)則分別合并高頻和低頻成分,常用的融合規(guī)則是高頻灰度值取大、低頻加權(quán)平均;(3)對(duì)合并后的高、低頻系數(shù)進(jìn)行相應(yīng)的逆變換,形成融合圖像。表11.1
像素級(jí)圖像融合方法、融合策略與差異特征之間的對(duì)應(yīng)關(guān)系融合方法分類(lèi)融合單元算法處理對(duì)象融合策略常用差異特征判斷指標(biāo)基于空間域的圖像融合方法像素點(diǎn)單個(gè)像素點(diǎn)的灰度值加權(quán)平均灰度值用區(qū)域運(yùn)算值替代單點(diǎn)像素值標(biāo)準(zhǔn)差、能量、梯度分塊像素取大、加權(quán)平均基于變換域的圖像融合方法像素點(diǎn)單個(gè)像素點(diǎn)的灰度值加權(quán)平均灰度值窗口用窗口運(yùn)算值替代單點(diǎn)像素值取大、加權(quán)平均標(biāo)準(zhǔn)差、能量、梯度區(qū)域用區(qū)域運(yùn)算值替代單點(diǎn)像素值11.1.3圖像融合實(shí)例——雙色中波紅外圖像融合
紅外中波細(xì)分波段圖像特征差異分析按照大氣窗口劃分,紅外中波段一般為3~5μm。紅外中波段的大氣透過(guò)率曲線如圖11.2所示。由于窄帶成像效果更好,所以,在高性能探測(cè)系統(tǒng)中往往把中波段進(jìn)一步劃分成兩個(gè)細(xì)分波段,如3.4~4.1μm、4.5~5.3μm,為論述方便,前者稱為“中波第一細(xì)分波段(MWIR1)”,后者稱為“中波第二細(xì)分波段(MWIR2)圖11.2紅外中波大氣透過(guò)率曲線兩個(gè)中波細(xì)分波段成像在以下幾個(gè)方面存在差異:同一目標(biāo)在兩個(gè)細(xì)分中波段的輻射出射度不同。根據(jù)普朗克定律,輻射出射度與波長(zhǎng)有關(guān),相同溫度下,不同波長(zhǎng)對(duì)應(yīng)的輻射出射度不同。兩個(gè)細(xì)分中波段的峰值波長(zhǎng)對(duì)應(yīng)的溫度范圍不同。根據(jù)維恩位移定律,以3.0~4.0μm(MWIR1)和4.0~5.0μm(MWIR2)為例,MWIR1和MWIR2對(duì)應(yīng)的黑體溫度范圍分別為966.3K~724.8K和724.8K~579.8K,最高最低溫度分別相差241.5K和145.0K,前者范圍寬,后者范圍較窄。不同目標(biāo)在兩個(gè)細(xì)分中波段的輻射出射度也不同。不同材料的光譜發(fā)射率不同,在相同溫度和同一波長(zhǎng)下,其輻射出射度是不同的。11.1.3圖像融合實(shí)例——雙色中波紅外圖像融合
2.基于雙樹(shù)復(fù)小波的雙色中波紅外圖像融合
由于小波變換存在兩個(gè)問(wèn)題:一是平移敏感性;二是方向缺乏性。為此,Kingsbury等人利用兩路離散小波變換的二叉樹(shù)結(jié)構(gòu)提出了雙樹(shù)復(fù)小波,如圖11.3所示。圖11.3
雙樹(shù)復(fù)小波變換原理圖(1)融合原理與步驟
首先利用雙樹(shù)復(fù)小波對(duì)已經(jīng)配準(zhǔn)好的源圖像分別進(jìn)行多尺度分解,其次,根據(jù)已經(jīng)建立的兩個(gè)細(xì)分波段圖像特征差異和融合方法的映射關(guān)系,在子圖像上選擇融合單元。然后,對(duì)高頻子圖像選用“取大”策略,對(duì)低頻子圖像采用“加權(quán)平均”。融合步驟如圖所示。圖11.4紅外中波大氣透過(guò)率曲線2.基于雙樹(shù)復(fù)小波的雙色中波紅外圖像融合(2)實(shí)驗(yàn)結(jié)果與分析11.1.3圖像融合實(shí)例——雙色中波紅外圖像融合
圖11.5雙色中波紅外圖像融合結(jié)果客觀評(píng)價(jià):局部標(biāo)準(zhǔn)差、熵、局部粗糙度的值越大說(shuō)明圖像的細(xì)節(jié)信息越豐富。圖像平均梯度越大說(shuō)明圖像的邊緣信息越好。結(jié)構(gòu)相似度越大說(shuō)明從原圖像中提取的信息越多。原圖像融合方法平均梯度熵局部標(biāo)準(zhǔn)差局部粗糙度平均結(jié)構(gòu)相似度No.1小波包融合結(jié)果2.31316.37184.26704.09740.9027SVT融合結(jié)果2.20786.35074.16354.22980.9036本節(jié)方法的融合結(jié)果2.44806.85334.88184.47360.9773No.2小波包融合結(jié)果3.54458.591310.076514.04340.9623SVT融合結(jié)果3.47458.572610.537814.56400.9124本節(jié)方法的融合結(jié)果3.66338.576411.375615.43840.947511.1.3圖像融合實(shí)例——雙色中波紅外圖像融合
表11.2圖11.5的客觀評(píng)價(jià)指標(biāo)值11.2基于最低有效位方法的圖像加密
圖像的數(shù)字水印技術(shù)是當(dāng)前的研究熱點(diǎn)之一。如果水印嵌入是在圖像空域進(jìn)行的,稱為空域水印技術(shù);如果水印嵌入是在變換域進(jìn)行的,則稱為變換域水印技術(shù)。
最低有效位方法(LeastSignificantBit,LSB)是一種典型的空域數(shù)據(jù)隱藏方法。灰度圖像的每個(gè)像素通常為8位(真彩色圖像的每個(gè)像素為24位,R,G,B各8位)。把圖像分解為(0~7)個(gè)位面,每一位取值0或1。
隨著位面從低到高變化,位平面圖像的特征逐漸變得復(fù)雜,細(xì)節(jié)不斷增加。低位所代表的能量很少,改變低位對(duì)圖像的質(zhì)量沒(méi)有太大的影響。LSB方法利用這一特點(diǎn)在圖像低位嵌入水印信息。11.2.1LSB算法步驟
(1)讀取載體圖像和秘密信息,將載體圖像每個(gè)像素點(diǎn)的像素值都進(jìn)行8bit二進(jìn)制轉(zhuǎn)換,以8位二進(jìn)制數(shù)作為位平面分布高度,分解成8個(gè)位平面。(2)先將所得到的二進(jìn)制數(shù)矩陣壓縮,然后把二值水印信息嵌入壓縮后空出的最低位;或者將最低位或第2位平面置零,替換為二值化水印。替換后的結(jié)果重新構(gòu)成8個(gè)新的位平面,實(shí)現(xiàn)水印在圖像位平面的嵌入。(3)把新的8bit二進(jìn)制數(shù)轉(zhuǎn)換為圖像像素的十進(jìn)制數(shù),得到水印圖像。11.2.1LSB算法步驟
圖11.6用二值水印信息替換載體數(shù)據(jù)的最低有效位
若待嵌入二進(jìn)制水印信息序列為{0,1,1,0,0,0,1,0,0},構(gòu)成新的位平面,如下圖11.6所示。這個(gè)替換過(guò)程可以描述為:其中,為原始載體圖像第i行j列像素點(diǎn)的像素值,
為待嵌入的二值水印。使用原載體圖像和待嵌入圖像都是彩色BMP格式,大小為256×256。
彩色水印圖像嵌入首先要進(jìn)行彩色圖像的二值化轉(zhuǎn)換。(11.1)11.2.2算法實(shí)現(xiàn)
%LSB
水印嵌入算法clearall%讀取載體圖像file_name='image1.bmp’;[cover_object,map]=imread(file_name);%讀取秘密信息file_name='key.bmp';[message,map1]=imread(file_name);message1=message;message=double(message);message=fix(message./2);message=uint8(message);%確定載體圖像大小Mc=size(cover_object,1);Nc=size(cover_object,2);%確定隱密信息大小Mm=size(message,1);Nm=size(message,2);%利用隱密信息生成載體圖像大小的水印信息fori=1:Mcforj=1:Ncwatermark(i,j)=message(mod(i,Mm)+1,mod(j,Nm)+1);endendwatermarked_image=cover_object;%將水印信息嵌入到載體圖像fori=1:Mcforj=1:Ncwatermarked_image(i,j)=bitset(watermarked_image(i,j),1,watermark(i,j));endendimwrite(watermarked_image,'lsb_watermarked.bmp','bmp');%計(jì)算載體圖像與水印圖像的相似度psnr=PSNR(cover_object,watermarked_image,Mc,Nc);figure(1);imshow(watermarked_image,[]);title('WatermarkedImage');figure(2);imshow(cover_object,[]);title('originalimage');%%%%LSB水印提取算法%%%%clearall;watermarked_image=imread('lsb_watermarked.bmp');%水印圖像的大小Mw=size(watermarked_image,1);Nw=size(watermarked_image,2);%水印信息提取過(guò)程fori=1:Mwforj=1:Nwwatermark(i,j)=bitget(watermarked_image(i,j),1);endendwatermark=2*double(watermark);imshow(watermark,[]);title('RecoveredWatermark');11.2.2仿真結(jié)果分析
圖11.7隱密信息圖11.8水印圖像圖11.9水印嵌入到不同位平面的結(jié)果圖11.9所示各幅圖像與原圖像的相似度值如表11.3所示。從表可以看出,將水印信息嵌入位平面0,即LSB平面所得到的圖像與原始圖像最相似,圖像幾乎看不到失真,而使用位平面7,即MSB平面時(shí)圖像失真最大。水印位置相似度水印位置相似度位平面77.9143位平面332.9961位平面614.1421位平面239.2718位平面521.4512位平面145.0400位平面426.8645位平面051.2054表11.3水印圖像與原始圖像的相似度11.2基于最低有效位方法的圖像加密對(duì)圖11.9中的水印嵌入LSB后得到的圖像進(jìn)行濾波和幾何攻擊,獲得如圖11.10所示圖像。圖11.10濾波和幾何攻擊的水印圖像11.2基于最低有效位方法的圖像加密
對(duì)圖11.10提取水印得到圖11.11??梢钥闯觯篖SB算法對(duì)于濾波操作和部分幾何攻擊的抵抗性不是很好,水印圖像不很清晰。盡管如此,由于LSB方法實(shí)現(xiàn)簡(jiǎn)單,隱藏量比較大,以LSB思想為原型,產(chǎn)生了一些變形的LSB方法,目前互聯(lián)網(wǎng)上公開(kāi)的圖像信息隱藏軟件大多使用這種方法。圖11.11濾波和幾何攻擊后水印提取的圖像
目標(biāo)提取(檢測(cè))常被視為圖像增強(qiáng)和圖像分割的復(fù)合問(wèn)題,其研究難點(diǎn)在于低信噪比和強(qiáng)干擾。目標(biāo)檢測(cè)可分為單幀圖像目標(biāo)檢測(cè)和多幀圖像目標(biāo)檢測(cè)兩大類(lèi)。單幀檢測(cè)方法往往假設(shè)局部背景變化較小,局部像素高度相關(guān),而目標(biāo)被視為打破這種局部相關(guān)性的像素。通常先利用圖像增強(qiáng)技術(shù)拉大目標(biāo)與背景的對(duì)比度,再利用特定算法檢測(cè)目標(biāo)。多幀檢測(cè)方法主要利用圖像序列中的時(shí)間和空間信息,依據(jù)目標(biāo)的運(yùn)動(dòng)特性或兩幀灰度值差的絕對(duì)值,通過(guò)閾值判定移動(dòng)的目標(biāo)。11.3圖像目標(biāo)提取
常用的運(yùn)動(dòng)目標(biāo)檢測(cè)算法有三種,即光流法、幀間差分法和背景差分法。
背景差分法的關(guān)鍵是提取背景圖像,對(duì)于攝像機(jī)固定不變的情況,背景也是靜態(tài)的(基本不變)。如果第一幀中沒(méi)有運(yùn)動(dòng)目標(biāo),就把第一幀作為背景,否則需要根據(jù)若干幀建立背景模型;同時(shí)由于光線、天氣等變化,需要更新背景,然后對(duì)包含運(yùn)動(dòng)目標(biāo)的幀圖像與背景圖像進(jìn)行差分運(yùn)算,再進(jìn)行二值化和形態(tài)學(xué)處理得到運(yùn)動(dòng)目標(biāo)區(qū)域。11.3.1運(yùn)動(dòng)目標(biāo)提取步驟
(1)讀取視頻文件disp('inputvideo');%顯示提示信息video=VideoReader('video1.avi');%獲取視頻文件get(video)%獲取視頻信息disp('outputvideo')%顯示提示信息implay('video1.avi');%播放視頻detecting(video);%調(diào)用運(yùn)動(dòng)目標(biāo)檢測(cè)函數(shù)
這里使用get函數(shù)獲取視頻文件的更多信息,比如:視頻持續(xù)時(shí)間、幀率、幀數(shù)、高度、寬度、視頻格式、像素深度等;使用implay函數(shù)播放視頻。(2)運(yùn)動(dòng)目標(biāo)檢測(cè)①取第一幀作為背景幀(假定第一幀不含運(yùn)動(dòng)目標(biāo)),并將其轉(zhuǎn)換成灰度圖像;②取出當(dāng)前幀(例子中的視頻共808幀,取第400幀為當(dāng)前幀);③計(jì)算當(dāng)前幀與背最幀之差,得到差分圖像;④對(duì)差分圖像進(jìn)行二值化;11.3.1運(yùn)動(dòng)目標(biāo)提取步驟
⑤對(duì)二值化后的圖像的各個(gè)連通區(qū)域作標(biāo)記;⑥計(jì)算各個(gè)區(qū)域的面積;⑦保留面積大于某個(gè)閾值的區(qū)域(例子中取閾值為800像素);⑧以半徑為5像素的圓形結(jié)構(gòu)元素對(duì)連續(xù)作3次膨脹、腐蝕操作,得到運(yùn)動(dòng)目標(biāo)。11.3.1運(yùn)動(dòng)目標(biāo)提取步驟
background=rgb2gray(read(video,1));%將第1幀作為背景choosedframe=rgb2gray(read(video,400));%取第400幀為當(dāng)前幀dtarget=abs(background-choosedframe);%計(jì)算差分bw=im2bw(dtarget,0.1);%差分圖像二值化cc=bwlabel(bw);%對(duì)二值圖像連通區(qū)城標(biāo)記stats=regionprops(cc,'Area');%計(jì)算各區(qū)域的面積idx=find([stats.Area]>800);%取面積大于800像素區(qū)域bw2=ismember(cc,idx);%判斷cc中的元素有無(wú)在idx中出現(xiàn)se=strel('disk',5);%取半徑為5的圓形結(jié)構(gòu)元素bw3=bw2;fori=1:3bw3=imdilate(bw3,se);%用結(jié)構(gòu)元素對(duì)區(qū)域進(jìn)行3次膨脹
bw3=imerode(bw3,se);%用結(jié)構(gòu)元素對(duì)區(qū)域進(jìn)行3次腐蝕endfigure,imshow(read(video,1));%顯示背景幀figure,imshow(read(video,400));%顯示當(dāng)前幀figure,imshow(dtarget);%顯示差分圖像figure,imshow(bw);%顯示二值化后的圖像figure,imshow(bw2);%顯示去除小目標(biāo)后的區(qū)域figure,imshow(bw3);%顯示3次膨脹、腐蝕后的結(jié)果11.3.2運(yùn)動(dòng)目標(biāo)特征提取實(shí)現(xiàn)11.3.2運(yùn)動(dòng)目標(biāo)特征提取實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)特征提取的實(shí)現(xiàn)結(jié)果如下:還可以進(jìn)一步計(jì)算目標(biāo)區(qū)域特征:dd=bwlabel(bw3);%對(duì)處理后的圖像作連通區(qū)域標(biāo)記stats2=regionprops(dd,'Area','Centroid');%計(jì)算目標(biāo)區(qū)域特征stats2.Area%顯示目標(biāo)區(qū)域面積stats2.Centroid%顯示目標(biāo)區(qū)城重心坐標(biāo)
對(duì)得到的運(yùn)動(dòng)目標(biāo)區(qū)域計(jì)算特征,得到其面積為29691,重心坐標(biāo)為(478.5879,230.4138)。11.4.1單幅圖像圖形化
11.4基于圖像的三維繪制把二維圖像的兩個(gè)下標(biāo)作為空間中的二維,灰度值作為空間中的一維。單幅圖像圖形化的實(shí)現(xiàn)結(jié)果如下:closeall;clc;A=imread('1.jpg');A1=rgb2gray(A);A1=imcrop(A,[100,0,240,200]);s=size(A1);subplot(131);imshow(A1);subplot(132)%從圖像中提取三維圖像數(shù)據(jù)fori=1:2:s(1)forj=1:2:s(2)plot3(i,j,A1(i,j));holdonendendview([80,70])圖11.13單幅圖像圖形化結(jié)果11.4.2多幅圖像圖形化
把每幅圖像當(dāng)做平面位置(x,y)上有一高度值z(mì),根據(jù)混沌理論,把各個(gè)圖像化為三維單位區(qū)域上的函數(shù),然后使用多個(gè)圖像依次穿插迭代,可以重構(gòu)圖像。首先,隨機(jī)選取一些圖像,例如選取6幅圖像,多幅圖像圖形化關(guān)鍵代碼如下:%讀入圖像a=imread('river.png');b=imread('face.jpg');c=imread('000001.jpg');d=imread('image5.jpg');e=imread('girl.jpg');f=imread('image1.jpg');%轉(zhuǎn)換為單通道圖像a001=a(:,:,3);a002=b(:,:,3);a003=c(:,:,1);a004=d(:,:,3);a005=e(:,:,3);a006=f(:,:,1);%把所有圖像都化為256256大小a01=imresize(a001,[256,256]);a02=imresize(a002,[256,256]);a03=imresize(a003,[256,256]);a04=imresize(a004,[256,256]);a05=imresize(a005,[256,256]);a06=imresize(a006,[256,256]);%調(diào)整動(dòng)態(tài)范圍k1=[0,1];k2=[0,1];k3=[0,1];k4=[0,1];k5=[0,1];k6=[0,1];a1=imadjust(a01,k1,[0,1]);a2=imadjust(a02,k2,[0,1]);a3=imadjust(a03,k3,[0,1]);a4=imadjust(a04,k4,[0,1]);a5=imadjust(a05,k5,[0,1]);a6=imadjust(a06,k6,[0,1]);x1=10;y1=20;x2=15;y2=200;x3=100;y3=70;x4=10;y4=20;x5=10;y5=200;x6=100;y6=70;fori=1:256*256*32%迭代次數(shù)多一些,得到的圖像就清晰一些
z1=a1(x1,y1);z2=a2(x2,y2);z3=a3(x3,y3);%將a1,a2,a3的顏色值賦出
z4=a4(x4,y4);z5=a5(x5,y5);z6=a6(x6,y6);ZZ1(x1,y1)=z1;ZZ2(x2,y2)=z2;ZZ3(x3,y3)=z3;%把顏色值分別存到各個(gè)數(shù)組里
ZZ4(x4,y4)=z4;ZZ5(x5,y5)=z5;ZZ6(x6,y6)=z6;if(z1==0)z1=1;end%z1-z6為0會(huì)使迭代陷入到某個(gè)小區(qū)域if(z2==0)z2=1;endif(z3==0)z3=1;endif(z4==0)z4=1;endif(z5==0)z5=1;endif(z6==0)z6=1;end%串動(dòng)像素的位置,把第2個(gè)圖像的函數(shù)值給第1個(gè)圖像作為下標(biāo),下面依次類(lèi)推
x1=y1;y1=z2;x2=y2;y2=z3;x3=y3;y3=z4;x4=y4;y4=z5;x5=y5;y5=z6;x6=y6;y6=z1;endsubplot(2,3,1);imshow(ZZ1);subplot(2,3,2);imshow(ZZ2);subplot(2,3,3);imshow(ZZ3);subplot(2,3,4);imshow(ZZ4);subplot(2,3,5);imshow(ZZ5);subplot(2,3,6);imshow(ZZ6);程序運(yùn)行后的結(jié)果如圖11.14所示。結(jié)果如下:圖11.14迭代重構(gòu)后的圖像11.5.1視頻圖像內(nèi)容關(guān)聯(lián)性分析通常視頻圖像在內(nèi)容上有關(guān)聯(lián),這種關(guān)聯(lián)可體現(xiàn)在序列圖像的顏色直方圖等方面。fori=1:9k=int2str(i);%把i從整型變?yōu)樽址?/p>
k1=strcat('E:\Books\basketball\',k,'.jpg');%把兩個(gè)字串E:\Books\basketball\與.jpg中間的k值連接起來(lái),以便調(diào)用序列圖像文件。
disp(k1);%輸出字符串。
B(i,:,:,:)=imread(k1);%最終B數(shù)組中存放了9幅圖像。
subplot(3,3,i);C(:,:,:)=B(i,:,:,:);imshow(C);endfigure;fori=1:9subplot(3,3,i);D(:,:,:)=B(i,:,:,:);E(:,:)=D(:,:,2);imhist(E);end11.5視頻圖像分析與目標(biāo)動(dòng)畫(huà)制作11.5視頻圖像分析與目標(biāo)動(dòng)畫(huà)制作結(jié)果與直方圖如下圖所示:圖11.15籃球比賽序列圖像圖11.16籃球比賽中序列圖像的直方圖fori=1:9k=int2str(i);k1=strcat('E:\Books\basketball\',k,'.jpg');B(i,:,:,:)=imread(k1);endfori=1:8C(:,:,:)=B(i+1,:,:,:)-B(i,:,:,:);imshow(C);pause(0.1);end
因?yàn)樾蛄袌D像一般相鄰幀之間具有內(nèi)容上的相關(guān)性,所以把序列圖像作差就可以提取到運(yùn)動(dòng)目標(biāo)。具體實(shí)現(xiàn)方法如下:11.5.2
視頻圖像運(yùn)動(dòng)目標(biāo)動(dòng)畫(huà)制作
序列圖像的差如圖11.17所示。利用pause(0.1)使得輸出連續(xù),呈現(xiàn)動(dòng)畫(huà)形式,如果每秒不少于25幀即為一個(gè)流暢的視頻。圖11.17籃球比賽序列圖像的差11.6.1準(zhǔn)備工作11.6圖像處理軟件開(kāi)發(fā)
在做完系統(tǒng)設(shè)計(jì)(這部分內(nèi)容可以參看軟件工程相關(guān)書(shū)籍)后,和其它軟件系統(tǒng)開(kāi)發(fā)一樣,基于MATLAB的軟件開(kāi)發(fā)也需要先把各個(gè)模塊的代碼準(zhǔn)備好。這里假定我們?cè)谇懊娴膶W(xué)習(xí)中已經(jīng)開(kāi)發(fā)出并調(diào)試好具備工程項(xiàng)目所需要的若干功能的圖像處理程序,如圖像增強(qiáng)、圖像復(fù)原、圖像分割等等,接下來(lái)需要做的:一是把代碼按模塊合并好;二是把每個(gè)模塊的程序一一改為函數(shù)。
對(duì)一個(gè)模塊IMMODEL1而言,把程序改為函數(shù)的關(guān)鍵語(yǔ)句是放在代碼開(kāi)始的function語(yǔ)句,其格式是:function輸出變量=函數(shù)名稱(輸入變量),這里輸出變量和函數(shù)名稱必須是符合MATLAB規(guī)則,如建立一個(gè)函數(shù)myIMMODEL1
保存為一個(gè).m文件myIMMODEL1.m。調(diào)用方式:num=myIMMODEL1(1,2);這樣就可以由函數(shù)中的y=a+b得到num的值是1+2=3。functiony=myIMMODEL1(a,b)y=a+b;11.6.2圖形用戶界面設(shè)計(jì)MATLAB為圖形用戶界面(GraphicalUserInterface,GUI)開(kāi)發(fā)提供了一個(gè)方便高效的集成開(kāi)發(fā)環(huán)境GUIDE。GUIDE是一個(gè)界面設(shè)計(jì)工具集,提供了系統(tǒng)界面的外觀、屬性和回調(diào)函數(shù)等。(1)啟動(dòng)GUIDE
用戶在MATLAB命令窗口輸入guide來(lái)啟動(dòng)GUIDE。產(chǎn)生GUIDE的快速啟動(dòng)窗口,如圖11.18所示圖11.18啟動(dòng)GUIDE
創(chuàng)建新的GUI時(shí),有4個(gè)模板可以選擇:通常我們選擇BlankGUI(Default),即系統(tǒng)默認(rèn)的空白模板,點(diǎn)擊確定會(huì)出現(xiàn)GUI界面,如圖所示。(2)創(chuàng)建新的GUI圖11.19創(chuàng)建新的GUI
1)靜態(tài)文本框創(chuàng)建點(diǎn)擊“靜態(tài)文本”按鈕,按需要添加靜態(tài)文本框,放置系統(tǒng)標(biāo)題和功能模塊名稱,如圖11.20所示。圖11.20
靜態(tài)文本框創(chuàng)建(3)系統(tǒng)功能界面設(shè)計(jì)2)靜態(tài)文本框設(shè)置右擊靜態(tài)文本框選擇“屬性檢查器”,可以對(duì)文本框的各類(lèi)參數(shù)進(jìn)行修改。將字號(hào)設(shè)置為16,文本框內(nèi)容改為RGB2Gray,如圖11.21更改完之后一定要回車(chē)才能保存成功,其余文本框操作類(lèi)似。圖11.21靜態(tài)文本框設(shè)置3)創(chuàng)建畫(huà)布。單擊“坐標(biāo)軸”按鈕,添加相同大小的兩個(gè)畫(huà)布,用于顯示圖片。如圖11.22所示。圖11.22創(chuàng)建畫(huà)布4)創(chuàng)建按鈕。單擊“按鈕”按鈕,添加系統(tǒng)按鈕,參數(shù)修改方式與靜態(tài)文本框相同。如圖所示。圖11.23創(chuàng)建按鈕5)單擊“運(yùn)行”按鈕,可以預(yù)覽界面效果。如圖所示。圖11.24預(yù)覽效果11.6.3
系統(tǒng)代碼編輯
在單擊“運(yùn)行”按鈕生成的m文件里對(duì)系統(tǒng)代碼進(jìn)行編輯。(1)變量初始化系統(tǒng)中變量及圖形界面的元素都在handles句柄結(jié)構(gòu)體中,因此需在handles中加變量屬性,如下圖所示為對(duì)變量進(jìn)行初始化。圖11.25變量初始化(2)按鈕制作及顯示
①按鈕1即pushbutton1的運(yùn)行代碼。首先選擇圖片文件,然后判斷是否選擇圖片,若是,則將圖片信息賦值給imgdata,并在axes1中進(jìn)行顯示,最后將圖片信息保存到handles結(jié)構(gòu)體中并對(duì)結(jié)構(gòu)體進(jìn)行更新,否則彈出錯(cuò)誤對(duì)話框。圖11.26
按鈕1制作
②按鈕2即pushbutton2運(yùn)行代碼。對(duì)選擇的圖片進(jìn)行灰度化處理,并在并在axes2中進(jìn)行顯示。圖11.27
按鈕2顯示系統(tǒng)運(yùn)行結(jié)果展示(1)點(diǎn)擊“運(yùn)行”,出現(xiàn)系統(tǒng)主界面圖。圖11.28
系統(tǒng)主界面(2)點(diǎn)擊“OpenRGBimage”按鈕選擇圖片,若正確選擇圖片,則正常顯示,否則創(chuàng)建錯(cuò)誤對(duì)話框。圖11.29選擇圖像圖11.30加載圖像圖11.31
未選擇圖像(3)點(diǎn)擊“ConvertRGBtoGray”,顯示處理后結(jié)果圖。圖11.32處理結(jié)果顯示11.6.4毀損古壁畫(huà)虛擬修復(fù)展示系統(tǒng)關(guān)鍵代碼functionvarargout=xitong(varargin)%XITONGMATLABcodeforxitong.fig.XITONG,byitself,createsanewXITONGorraisestheexistingsingleton*.H=XITONGreturnsthehandletoanewXITONGorthehandletotheexistingsingleton*.%XITONG('CALLBACK',hObject,eventData,handles,...)callsthelocalfunctionnamedCALLBACKinXITONG.Mwiththegiveninputarguments.%XITONG('Property','Value',...)createsanewXITONGorraisestheexistingsingleton*.Startingfromtheleft,propertyvaluepairsareappliedtotheGUIbeforexitong_OpeningFcngetscalled.Anunrecognizedpropertynameorinvalidvaluemakespropertyapplicationstop.Allinputsarepassedtoxitong_OpeningFcnviavarargin.LastModifiedbyGUIDEv2.519-Mar-202023:19:14.%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...,'gui_Singleton',gui_Singleton,...,'gui_OpeningFcn',@xitong_OpeningFcn,...,'gui_OutputFcn',@xitong_OutputFcn,...,'gui_LayoutFcn',[],...,'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforexitongismadevisible.functionxitong_OpeningFcn(hObject,eventdata,handles,varargin)%Choosedefaultcommandlineoutputforxitonghandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesxitongwaitforuserresponse(seeUIRESU
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)文-河南金太陽(yáng)2024-2025學(xué)年高二上學(xué)期第二次月考
- 2025年比特幣投資項(xiàng)目建議書(shū)
- 2025年吡唑啉酮項(xiàng)目合作計(jì)劃書(shū)
- 2025年濕式碾米機(jī)項(xiàng)目建議書(shū)
- 加強(qiáng)云服務(wù)與本地?cái)?shù)據(jù)同步策略
- 智能科技服務(wù)合同
- 設(shè)備采購(gòu)申請(qǐng)說(shuō)明及預(yù)算分析報(bào)告書(shū)
- 雷鋒的敬業(yè)精神觀后感
- 智聯(lián)保密協(xié)議
- 8-Iodooctan-1-amine-生命科學(xué)試劑-MCE
- 公路工程節(jié)后復(fù)工安全教育
- 2024.8.1十七個(gè)崗位安全操作規(guī)程手冊(cè)(值得借鑒)
- 小王子-英文原版
- T-CHTS 10021-2020 在役公路隧道長(zhǎng)期監(jiān)測(cè)技術(shù)指南
- 醫(yī)院門(mén)診醫(yī)生績(jī)效考核標(biāo)準(zhǔn)及評(píng)分細(xì)則
- 醫(yī)院納入定點(diǎn)后使用醫(yī)療保障基金的預(yù)測(cè)性分析報(bào)告
- 北師大版六年級(jí)下冊(cè)書(shū)法練習(xí)指導(dǎo)教案教學(xué)設(shè)計(jì)
- 《企業(yè)經(jīng)營(yíng)統(tǒng)計(jì)學(xué)》課程教學(xué)大綱
- 如何做好健康沙龍
- 交通安全設(shè)施養(yǎng)護(hù)技術(shù).ppt
- 環(huán)錘式碎煤機(jī)使用說(shuō)明書(shū)(參考)
評(píng)論
0/150
提交評(píng)論