空间操作直接在给定图像的像素上执行,分为三大类:单像素操作、邻域操作、几何空间变换
一、单像素操作
s = T(z),
其中,z是原图像中像素的灰度,s是处理后图像中相应像素的(映射)灰度,T为变换函数。
二、邻域操作
与单像素操作类似,Sxy代表图像f中任意一点(x, y)为中心的邻域集,邻域处理是在Sxy内的像素经指定操作后输出到另一图像相同坐标处,形成新图像g。
三、几何空间变换
几何空间变换主要由两个基本操作组成:(1)、坐标的空间变换;(2)、灰度内插;(http://www.cnblogs.com/MrZheng9511/p/MrZheng.html)
最常用的空间坐标变换之一是仿射变换。
其中(v, w)是原图像中像素的坐标,(x, y)是变换后图像中像素的坐标。
基于上式,可以实现恒等变换、尺度变换、旋转变换、平移变换、垂直偏移变换、水平偏移变换。
如垂直偏移变换:
详见数字图像处理第三版P51。
实现空间变换的matlab程序:
1.图像平移
Image_original = imread('D:图像处理imagelena1.jpg');
I = rgb2gray(Image_original);
J = imtranslate(I,[100,100]);
K = imtranslate(I,[-100,-100]);
L = imtranslate(I,[100,100],'linear');
M = imtranslate(I,[100,100],'linear','Fillvalues',255);
N = imtranslate(I,[100,100],'linear','Fillvalues',255,'OutputView','full');
subplot(231)
imshow(I);
title('Original Image');
set(gca,'Visible','on');
subplot(232)
imshow(J)
title('J');
set(gca,'Visible','on');
subplot(233)
imshow(K);
title('K');
set(gca,'Visible','on');
subplot(234)
imshow(L)
title('L');
set(gca,'Visible','on');
subplot(235)
imshow(M);
title('M');
set(gca,'Visible','on');
subplot(236)
imshow(N)
title('N');
set(gca,'Visible','on');
结果:
2.图像旋转
Image_original = imread('D:图像处理imagelena1.jpg');
I = rgb2gray(Image_original);
I1 = imrotate(I,60);
I2 = imrotate(I,60,'bilinear');
I3 = imrotate(I,60,'bilinear','crop');
subplot(221)
imshow(I);
title('Original Image');
set(gca,'Visible','on');
subplot(222)
imshow(I1)
title('I1');
set(gca,'Visible','on');
subplot(223)
imshow(I2);
title('I2');
set(gca,'Visible','on');
subplot(224)
imshow(I3)
title('I3');
set(gca,'Visible','on');
结果: