必威电竞|足球世界杯竞猜平台

錯(cuò)切
來(lái)源:互聯(lián)網(wǎng)

錯(cuò)切是在某方向上,按照一定的比例對(duì)圖形的每個(gè)點(diǎn)到某條平行于該方向的直線的有向距離做放縮得到的平面圖形。來(lái)源于線性代數(shù)。

定義

平面的水平和豎直錯(cuò)切

在平面上,水平錯(cuò)切(或平行于X軸的錯(cuò)切)是一個(gè)將任一點(diǎn)映射到點(diǎn)的操作,m是固定參數(shù),稱為錯(cuò)切因子。

水平錯(cuò)切的效果是將每一點(diǎn)水平移動(dòng),移動(dòng)的長(zhǎng)度和該點(diǎn)的縱坐標(biāo)成比例。若則x軸上方的所有點(diǎn)都向右移動(dòng),則x軸上方的所有點(diǎn)都向左移動(dòng),x軸下方點(diǎn)移動(dòng)的方向?qū)?yīng)相反,而x坐標(biāo)軸上的點(diǎn)位置不變。平行于x軸的直線保持不變,其他所有線繞與x軸交點(diǎn)轉(zhuǎn)動(dòng)不同的角度;原來(lái)豎直的線則變成斜率的斜線,如此參數(shù),即豎直線傾斜后的轉(zhuǎn)軸傾角,稱為錯(cuò)切角。

如果把點(diǎn)的坐標(biāo)寫成一個(gè)列向量,則錯(cuò)切可以表示成一個(gè)的矩陣和坐標(biāo)的乘積:

豎直錯(cuò)切的操作類似,就是將x和y互換位置。轉(zhuǎn)制矩陣如下:

(未知原因,圖片無(wú)法插入)

經(jīng)過(guò)豎直錯(cuò)切后,原來(lái)豎直的直線不變,其他線繞其與y軸交點(diǎn)旋轉(zhuǎn),原來(lái)水平的線現(xiàn)在變成斜率m的線。

廣義錯(cuò)切

對(duì)于向量空間V和其子空間W,一個(gè)對(duì)于W的錯(cuò)切將變換所有和W平行的向量。

具體來(lái)講,如果V是W和W'的直和,我們把V寫成:那么一個(gè)對(duì)于W的錯(cuò)切L即:

其中M是從W'到W的一個(gè)線性映射。用分塊矩陣表示,則L寫成:

(I M

0 I)

應(yīng)用

我們來(lái)直觀看看錯(cuò)切的效果吧

其數(shù)學(xué)表達(dá)式為:

矩陣變換為:

其中b為tan(a),a為錯(cuò)切角度

好啦,我們還是寫程序來(lái)看看效果吧

import cv

import 數(shù)學(xué)

DEF Warp(image,angle):

a=math.tan(angle*math.pi/180.0)

W=意象width

H=int(image.height+W*a)

開(kāi)本=(W,H)

iWarp=cv.CreateImage(size,image.depth,image.nChannels)

for i in range(image.height):

for j in 值域(image.width):

x=int(i+j*a)

iWarp[x,j]=image[i,j]

回車鍵 iWarp

image=cv.LoadImage('lena.jpg',1)

iWarp1=Warp(image,15)

伏羲殤ShowImage('image',image)

cv.ShowImage('1',iWarp1)

cv.WaitKey(0)

效果略。

參考資料 >

生活家百科家居網(wǎng)