版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)視覺課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告1題 目: 圖 像 變 形2組 員:曹英(E03640201) 葉超(E03640124) 李淑珍(E03640104)3實(shí)驗(yàn)?zāi)康模赫莆請(qǐng)D像幾何運(yùn)算中變形算法4實(shí)驗(yàn)原理:對(duì)兩幅圖分別進(jìn)行卷繞、插值,每幅圖得到一序列圖片,然后對(duì)這些序列圖片進(jìn)行加權(quán)求和,得到一序列幀,再將其顯示出來,就得到了由一幅圖到另一幅圖的變形。5實(shí)驗(yàn)步驟:對(duì)一幅圖分別選4行4列的16個(gè)控制點(diǎn),在每條邊上進(jìn)行五等分,每條邊形成六個(gè)點(diǎn),加上原來的16個(gè)就是36個(gè)控制點(diǎn),這樣就把它分成了不規(guī)則的25小塊,對(duì)每小塊進(jìn)行卷繞、插值,本實(shí)驗(yàn)我們用的是最近鄰插值,目標(biāo)控制點(diǎn)就是將圖片分成標(biāo)準(zhǔn)并且相同大小的25小
2、塊的36個(gè)點(diǎn)。這樣會(huì)得到一幅不規(guī)則圖片,讓它作為新的原圖進(jìn)行如前所述一樣的處理,控制點(diǎn)都是這樣自動(dòng)產(chǎn)生的:一開始所選每個(gè)控制點(diǎn)到相應(yīng)標(biāo)準(zhǔn)控制點(diǎn)等距離(本實(shí)驗(yàn)我們是分成9等分)產(chǎn)生一序列的36個(gè)控制點(diǎn)。這樣每產(chǎn)生一幅圖都對(duì)它進(jìn)行相類似的處理,控制點(diǎn)的產(chǎn)生方法就是上面所說的那樣。得到的一序列圖片越來越接近原圖,最后一幅與原圖一樣。這樣我們就可以得到這樣的一序列圖片:原圖,手工選控制點(diǎn)進(jìn)行處理后得到的不規(guī)則圖,循環(huán)產(chǎn)生控制點(diǎn)得到的越來越接近原圖的9幅圖(最后一幅與原圖一樣)。為了描述的方便,這里我把它編號(hào)為1_1到1_11。對(duì)目標(biāo)圖進(jìn)行與原圖一樣的處理。編號(hào)也類似,即2_1到2_11。最后進(jìn)行加權(quán)求
3、和,第一幀是原圖,第二幀是1_10與2_2加權(quán)求和,其中1_10的權(quán)值是0.9,2_2的權(quán)值是0.1,第三幀是1_9與2_3加權(quán)求和,其中1_9的權(quán)值是0.8,2_3的權(quán)值是0.2,第十幀是1_2與2_10加權(quán)求和,其中1_10的權(quán)值是0.1,2_2的權(quán)值是0.9,第十一幀是目標(biāo)圖。這樣就得到了所要的結(jié)果。這里需要說明的是兩幅手工選擇的控制點(diǎn)最好是那些有代表性的特征點(diǎn),這樣的話結(jié)果會(huì)更好。下面的程序的源代碼:clear all; clc;x1=imread('im1.jpg');x2=imread('im2.jpg');m,n,p=size(x1);subplo
4、t(2,2,1),imshow(x1);subplot(2,2,2),imshow(x2);x1=double(x1);x2=double(x2);newx=;newy=;%在圖片上選36個(gè)點(diǎn)將圖片分成標(biāo)準(zhǔn)并且相同大小的25小塊for k=1:36 newx(k)=fix(n/5)*(mod(k-1,6)+1; newy(k)=fix(m/5)*fix(k-1)/6)+1; end%對(duì)原圖進(jìn)行分塊for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 %邊界上的點(diǎn)還是標(biāo)準(zhǔn)的等分點(diǎn) oldx1(k
5、)=newx(k); oldy1(k)=newy(k); otherwise %在圖片中選擇4行4列的16個(gè)控制點(diǎn) oldx1(k),oldy1(k)=ginput(1); hold on; subplot(2,2,1),plot(oldx1(k),oldy1(k),'o'); endend%對(duì)目標(biāo)圖進(jìn)行分塊,方法同上for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 oldxx1(k)=newx(k); oldyy1(k)=newy(k); otherwise oldxx1
6、(k),oldyy1(k)=ginput(1); hold on; subplot(2,2,2),plot(oldxx1(k),oldyy1(k),'*'); endend%對(duì)第一張進(jìn)行卷繞,插值for i=1:29 newspic=; if mod(i,6)=0 for j=1:4 %每個(gè)小塊分別處理 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=news
7、pic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldx1_1=oldx1(i);oldx1(i+1);oldx1(i+6);oldx1(i+7); %卷繞 oldy1_1=oldy1(i);oldy1(i+1);oldy1(i+6);oldy1(i+7); cofx=inv(newspic)*oldx1_1; cofy=inv(newspic)*oldy1_1; for k=newy(i):newy(
8、i+6) %進(jìn)行最近鄰插值 for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)<1 | round(testy)<1 | round(testx)>n | round(testy)>m pic1(k,l,rgb)=0; else pic1(k,l,rgb)=x1(round(testy),round(testx),rgb); end end end endendend%后面的連續(xù)楨(9幀)for Q=1:9for k=1:36 sw
9、itch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 oldx2(k)=newx(k); oldy2(k)=newy(k); otherwise %用循環(huán)控制產(chǎn)生新的控制點(diǎn) oldx2(k)=(newx(k)-oldx1(k)*Q/9+oldx1(k); oldy2(k)=(newy(k)-oldy1(k)*Q/9+oldy1(k); endendfor i=1:29 %下面是卷繞,插值,方法同上 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) ne
10、wy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldx2_1=oldx2(i);oldx2(i+1);oldx2(i+6);oldx2(i+7); oldy2_1=oldy2(i)
11、;oldy2(i+1);oldy2(i+6);oldy2(i+7); cofx=inv(newspic)*oldx2_1; cofy=inv(newspic)*oldy2_1; for k=newy(i):newy(i+6) for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)<1 | round(testy)<1 | round(testx)>n | round(testy)>m pic2(k,l,rgb,Q)=0; else pi
12、c2(k,l,rgb,Q)=x1(round(testy),round(testx),rgb); end end end endendendend%對(duì)第二張進(jìn)行卷繞,插值,方法同上for i=1:29 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) ne
13、wx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldxx1_1=oldxx1(i);oldxx1(i+1);oldxx1(i+6);oldxx1(i+7); oldyy1_1=oldyy1(i);oldyy1(i+1);oldyy1(i+6);oldyy1(i+7); cofx=inv(newspic)*oldxx1_1; cofy=inv(newspic)*oldyy1_1; for k=newy(i):newy(i+6) for l=newx(i)
14、:newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)<1 | round(testy)<1 | round(testx)>n | round(testy)>m pic3(k,l,rgb,Q)=0; else pic3(k,l,rgb)=x2(round(testy),round(testx),rgb); end end end endendend%后面的連續(xù)楨for Q=1:9for k=1:36 switch k case 1,2,3,4,5,6,7,12,
15、13,18,19,24,25,30,31,32,33,34,35,36 oldxx2(k)=newx(k); oldyy2(k)=newy(k); otherwise oldxx2(k)=(newx(k)-oldx1(k)*Q/9+oldxx1(k); oldyy2(k)=(newy(k)-oldy1(k)*Q/9+oldyy1(k); endendfor i=1:29 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1
16、newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldxx2_1=oldxx2(i);oldxx2(i+1);oldxx2(i+6);oldxx2(i+7); oldyy2_1=oldyy2(i);oldyy2(i+1);oldyy2(i+6);oldyy2(i+7); cofx=in
17、v(newspic)*oldxx2_1; cofy=inv(newspic)*oldyy2_1; for k=newy(i):newy(i+6) for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)<1 | round(testy)<1 | round(testx)>n | round(testy)>m pic4(k,l,rgb,Q)=0; else pic4(k,l,rgb,Q)=x2(round(testy),round(test
18、x),rgb); end end end endendendends1=size(pic1);s2=size(pic3);s(1)=min(s1(1),s2(1);s(2)=min(s1(2),s2(2);s(3)=min(s1(3),s2(3);%對(duì)兩幅圖片產(chǎn)生的序列圖進(jìn)行加權(quán)求和,將結(jié)果放在一個(gè)4維數(shù)組中,產(chǎn)生11幀圖像picture(1:m,1:n,1:p,1)=x1;picture(1:s(1),1:s(2),1:s(3),2)=0.9*pic2(1:s(1),1:s(2),1:s(3),8)+0.1*pic3(1:s(1),1:s(2),1:s(3);for i=3:9picture(1:s(1),1:s(2),1:s(3),i)=(1.1-0.1*i)*pic2(:,:,:,10-i)+(i-1)*0.1*pic4(:,:,:,i-2);endpicture(1:s(1),1:s(2),1:s(3),10)=0.1*pic1(1:s(1),1:s(2),1:s(3)+0.9*pic4(:,:,:,8);picture(1:m,1:n,1:p,11)=x2;picture=uint8(picture);for i=1:11 subplot(2,2,3),imshow(picture(:,:,:,i);pause(0.5);endm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力建設(shè)招議標(biāo)管理辦法
- 旅游景區(qū)宣傳演員聘用協(xié)議
- 城市綠化景觀設(shè)計(jì)改造提升合同
- 車牌租賃代售合同范本模板
- 瑜伽館裝修協(xié)議
- 生態(tài)園苗木采購施工合同
- 交通運(yùn)輸業(yè)工傷員工管理手冊(cè)
- 農(nóng)村交通改善項(xiàng)目合同
- 高速公路稽查業(yè)務(wù)培訓(xùn)
- 水泵房消防安全管理規(guī)程
- 天津2024年天津市第一中心醫(yī)院人事代理制工作人員招聘 筆試歷年典型考題寄考點(diǎn)剖析含答案附詳解
- 新生兒呼吸窘迫綜合征課件
- 知道智慧網(wǎng)課《檢驗(yàn)儀器原理與性能評(píng)價(jià)》章節(jié)測(cè)試答案
- 2024年新修訂公司法知識(shí)競(jìng)賽題庫及答案
- 部編版九年級(jí)語文上、下冊(cè)古詩詞練習(xí)及答案
- 2024年《考評(píng)員》應(yīng)知應(yīng)會(huì)考試題庫(附答案)
- 2024新版同股不同權(quán)協(xié)議書完整版
- ISO14001:2015環(huán)境安全監(jiān)測(cè)與測(cè)量控制程序
- Abominable《雪人奇緣》電影完整中英文對(duì)照劇本
- 商會(huì)專職秘書長聘用合同
- 工程建設(shè)監(jiān)理收費(fèi)標(biāo)準(zhǔn)(發(fā)改價(jià)格【2007】670號(hào))
評(píng)論
0/150
提交評(píng)論