資源描述:
《線性插值圖形旋轉(zhuǎn).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、線性插值圖形旋轉(zhuǎn)一、作業(yè)要求編寫(xiě)一個(gè)圖像旋轉(zhuǎn)程序,可以對(duì)圖像進(jìn)行任意角度的旋轉(zhuǎn)(旋轉(zhuǎn)后無(wú)圖像部分用255賦值)。提供源碼和執(zhí)行碼,寫(xiě)出實(shí)驗(yàn)報(bào)告,內(nèi)容包括:選用插值方法的介紹與分析,程序框圖,實(shí)驗(yàn)結(jié)果,誤差分析等。要求:1。建議程序用VC編寫(xiě),如用其他語(yǔ)言編寫(xiě)最好提前告知助教;2??蓞⒖急緯?shū)講授方法,也可采用其它方法;3。自行編寫(xiě)全部算法和圖像讀寫(xiě)函數(shù)。附:RAW格式圖像一幅,大小為256×256。該格式圖像可用PHOTOSHOP打開(kāi)和顯示。其格式為逐行存儲(chǔ),1個(gè)象素占1個(gè)字節(jié),表示灰度值從0(最暗)到255(最亮)。二、算法分析在直角坐標(biāo)系中,旋轉(zhuǎn)變換的公式
2、是現(xiàn)在已知新坐標(biāo)系中的坐標(biāo),反求原坐標(biāo)系中的坐標(biāo)在本問(wèn)題中,有如下變化:1.在新坐標(biāo)系(新圖)中的坐標(biāo)為(j,i),原坐標(biāo)系(原圖)中的坐標(biāo)為(y,x);2.坐標(biāo)原點(diǎn)有變化,為了圖像繞中心旋轉(zhuǎn),原坐標(biāo)系中的原點(diǎn)應(yīng)為(128,128),新坐標(biāo)系中應(yīng)為(width/2,height/2)。考慮到如下變化,旋轉(zhuǎn)公式應(yīng)為其中,為新圖的高度和寬度。如下圖所示:圖1圖2三、誤差分析線性插值屬于拉格朗日插值。插值余項(xiàng)Rn(x,y),原函數(shù)f(x,y),插值多項(xiàng)式Ln(x,y)。Rn(x,y)=f(x,y)-Ln(x,y)誤差的一個(gè)誤差比較大的來(lái)源是每個(gè)點(diǎn)的灰度值必須是整數(shù)
3、型的,由浮點(diǎn)型轉(zhuǎn)換為整數(shù)型時(shí)舍去的小數(shù)部分的值。x、y值最后取整,舍入誤差最大為1Rn(x)=(x-x0)(x-x1)*d(df/dx)/2Rn(y)=(y-y0)(y-y1)*d(df/dy)/2由此考慮Rn(x)|Rn(x)|<=M*|(x-x0)(x-x1)|/2M=max|d(df/dx)|x0=4、存輸入想要想得到的角度an0以寫(xiě)文件的方式打開(kāi)一個(gè)raw類型的文件得到新圖坐標(biāo)系下的坐標(biāo)(j,i)對(duì)應(yīng)的原坐標(biāo)系下的坐標(biāo)(j1,i1),以及其整形值(j0,i0)和二者的差值t1,t2用x方向的兩點(diǎn)(j0,i0),(j0+1,i0)進(jìn)行線性插值得到x方向的值tem1,用y方向的兩點(diǎn)(j0,i0),(j0,i0+1)進(jìn)行線性插值得到y(tǒng)方向的值tem2,在用兩點(diǎn)差值法得到(j,i)的灰度值tem0寫(xiě)文件fwrite(&tem0,1,1,cp);結(jié)束計(jì)算旋轉(zhuǎn)后的圖寬nw1圖高nh1