精品資料(2021-2022年收藏)計(jì)算機(jī)視覺課程設(shè)計(jì)報(bào)告_第1頁
精品資料(2021-2022年收藏)計(jì)算機(jī)視覺課程設(shè)計(jì)報(bào)告_第2頁
精品資料(2021-2022年收藏)計(jì)算機(jī)視覺課程設(shè)計(jì)報(bào)告_第3頁
精品資料(2021-2022年收藏)計(jì)算機(jī)視覺課程設(shè)計(jì)報(bào)告_第4頁
精品資料(2021-2022年收藏)計(jì)算機(jī)視覺課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論