Matlab_20190820
数字图像的运算
像素运算
基于数字图像像素的一些基本运算,主要包括改变图像灰度值的点运算、图像的代数运算(加、减、乘、除等)以及图像的逻辑运算(与、或、非、异或)
几何变换
图像的形状变换
是指图像的放大、缩小与错切。
缩小
图像缩小实际上就是对原有的多个数据进行挑选或处理,获得期望缩小尺寸的数据,并且尽量保持原有的特征不丢失。最简单的方法就是等间隔地选取数据。
close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量
clear all;
clc;
[X,map]=imread('trees.tif'); %读入图像
J1=imresize(X, 0.25); %设置缩放比例,实现缩放图像并显示
J2=imresize(X, 3.5);
J3=imresize(X, [64 40]); %设置缩放后图像行列,实现缩放图像并显示
J4=imresize(X, [64 NaN]);
J5=imresize(X, 1.6, 'bilinear'); %设置图像插值方法,实现缩放图像并显示
J6=imresize(X, 1.6, 'triangle');
[J7, newmap]=imresize(X,'Antialiasing',true,'Method','nearest',...
'Colormap','original','Scale', 0.15);%设置图像多个参数,实现缩放图像并显示
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure(1) %显示各种缩放效果图
subplot(121),imshow(J1);
subplot(122),imshow(J2);
figure(2)
subplot(121),imshow(J3);
subplot(122),imshow(J4);
figure(3)
subplot(121),imshow(J5);
subplot(122),imshow(J6);
figure(4),
subplot(121),imshow(X);
subplot(122),imshow(J7);
放大
需要对多出的空位填入适当的值,是信息的估计。
错切
平面景物在投影平面上的非垂直投影效果。
图像的位置变换
是指图像的平移、镜像与旋转。
注意: 平移后的景物与原图像相同,但“画布”一定是扩大了。否则就会丢失信息。
水平镜像:
垂直镜像:
图像的旋转:
图像的仿射变换
图像变换技术
Radon变换
正变换
R=radon(I, theta):该函数对图像I进行Radon变换,theta为角度,函数的返回值R为图像I在theta方向上的变换值。
[R, xp]=radon(…):该函数的返回值xp为对应的坐标值
反变换
I=iradon(R, theta):该函数进行Radon反变换,R为Radon变换矩阵,theta为角度,函数的返回值I为反变换后得到的图像
傅立叶变换
种常用的正交变换,它的理论完善,应用范围非常广泛。在数字图像处理领域,傅立叶变换起着非常重要的作用,可以进行图像分析、图像增强和图像压缩等。以时间为自变量的“信号”与频率为自变量的“频谱”函数之间的某种变换关系。
二维傅立叶变换
可以转化为两次一维Fourier变换。
作用: 可以得出信号在各个频率点上的强度;可以将卷积运算化为乘积运算
快速傅立叶变换
快速Fourier变换的提出,是为了减少计算量。
基本思想是,找出Fourier变换中的数据变化规律,按照其规律整理出 适合计算机运算 的逻辑结构。
图像增强
灰度变换增强
clear all; close all;
I=imread('pout.tif');
row=size(I,1);
column=size(I,2);
N=zeros(1, 256);
for i=1:row
for j=1:column
k=I(i, j);
N(k+1)=N(k+1)+1;
end
end
figure;
subplot(121);
imshow(I);
subplot(122);
bar(N);
axis tight;
clear all; close all;
I=imread('pout.tif');
J=imadjust(I, [0.2 0.5], [0 1]);
figure;
subplot(121);
imshow(uint8(I));
subplot(122);
imshow(uint8(J));
I=imread('pout.tif');
J=imadjust(I, [0.1 0.5], [0, 1], 0.4);
K=imadjust(I, [0.1, 0.5], [0, 1], 4);
figure;
subplot(121);
imshow(uint8(J));
subplot(122);
imshow(uint8(K));
直方图增强
clear all; close all;
I=imread('pout.tif');
figure;
subplot(121);
imshow(uint8(I));
subplot(122);
imhist(I);
伪彩色增强方法
基于灰度变换的伪彩色方法
仿照对温度的描述方式,当温度比较低,我们会想到蓝色(又称冷色调)。
当温度较高的时候,会想到红色(又称暖色调)。
根据人感官上的这一特性,将亮度低的影射为蓝色,亮度高的影射为红色。
基于灰度调色板的伪彩色方法
这种伪彩色技术在医学诊断中常被用到,目的是突出病灶,提高诊断率。
该伪彩色技术是对原图进行了预处理,将识别出属于不同性质的区域给不同的色彩。