图像空间变换--imtransform
?
將(w,z)坐標(biāo)系上的圖像變換為(x,y)坐標(biāo)系上的圖像,可以表示為: (x,y) = T{(w,z)??
比如: (x,y) = T{(w,z)} = (w/2, z/2)
仿射變換
仿射變換是一種常用矩陣變換,它可以表示成矩陣的形式:?
在matlab里面實(shí)現(xiàn)
wz = [3 4 1];
T = [2 0 0; 0 3 0; 0 0 1];
xy = wz * T;
wz = xy * inv(T);??
為了避免歸一化參數(shù),我們可以借助maketform函數(shù):
T = [2 0 0; 0 3 0; 0 0 1];
tform = maketform('affine', T);
wz = [1 2; 3 4];
xy = tformfwd(wz, tform);
wz = tforminv(xy, tform);
??
對(duì)圖像應(yīng)用空間變換
有兩種方法:正向映射和反向映射
反向映射的過(guò)程是:對(duì)每一個(gè)輸出像素,計(jì)算它在輸入圖像上的位置,根據(jù)輸入圖像上該位置附近的像素值決定輸出像素的值。
在matlab中,簡(jiǎn)單的變換可以直接用單個(gè)函數(shù)實(shí)現(xiàn)。圖像縮放使用:
g = imresize(f, scale);
g = imresize(f, [ROW COL]);?
圖像旋轉(zhuǎn)使用:
g = imrotate(f, angle);??
圖像剪切使用:
g = imcrop(f, [X, Y, WIDTH, HEIGHT]);
在matlab中使用imtransform實(shí)現(xiàn)圖像的空間變換。語(yǔ)法是
g = imtransform(f, tform, interp);
其中,interp可以是'nearest','bilinear'或者'bicubic'。
比如:
f = chekerboard(50);
s = 0.8;
theta = pi/6;
T = [s*cos(theta) s*sin(theta) 0;-s*sin(theta) s*cos(theta) 0;0 0 1];
tform = maketform('affine', T);
g = imtransform(f, tform);?
?
?總結(jié)
以上是生活随笔為你收集整理的图像空间变换--imtransform的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 图像处理和图像识别中常用的OpenCV函
- 下一篇: 图像配准的方法