CHP3-医学图像的运算和变换

一、医学图像的算数和逻辑运算

算法运算(代数运算):两幅图像或多幅输入图像之间进行点对点的加、减、乘、除运算得到输出图像的过程。

若将输入图像记为A(x,y)B(x,y),输出图像为C(x,y),则有如下四种形式:

影像的代数运算在医学影像处理中的应用主要有加法运算减法运算

加法运算:两幅图像的像素对应相加,常被用于消除图像中的白噪声。

主要应用:

Ø 图像添加噪声
Ø 对同一场景的多幅图像求平均,降低加性 噪声
Ø 幅图像叠加到另一幅图像,达到二次曝光效果

减法运算:两幅图像的像素对应相减,常被用于医学影像的造影增强显示。

差值图像提供了图像间的差值信息,能用于指导动态监测、运动目标的监测和跟踪、图像背景的消除及目标识别等。

主要应用:

Ø 差影法:监测同一场景两幅图像之间的变化
Ø 混合图像的分离

图像的乘法和除法运算:两幅图像的像素对应相乘或相除,常被用于校正由于照明或传感器的非均匀性造成的图像亮度阴影。

乘法主要应用:

Ø 图像的局部显示
Ø 改变图像的灰度级

图像的逻辑运算:两幅图像的对应的像素做“与(AND)”、“或(OR)”,“非(NOT)”等逻辑运算,这种运算只能应用于二值图像(即像素取值仅有01的图像)。

二、医学图像的几何运算

图像的几何运算:主要包括图像的平移、旋转、缩放等几何变换,在数学上可以表示为像素坐标的变化。

目的:改变图像中物体间的空间关系

Ø图像平移是几何变换中最简单的一种

Ø图像旋转是以图像的中心为原点,旋转一定的角度,即将图像上的所有像素都选择一个相同的角度。

Ø 当图像旋转任意角度时,计算出的像素点坐标可能会出现小数,甚至在旋转后的图像中有些像素点在原图像中无对应点。
Ø 因此,当图像旋转任意角度后计算出的坐标必须 取整 ,对于无对应点的像素点可采用局部均值 插值 或双线性插值法得到像素点的值。
Ø 实际应用中最常用的对医学旋转 90 180 270 度,最基本和常用的是 旋转 90

u 图像的缩放 就是根据一定的缩放系数对图像的宽度和高度进行缩小或放大,从而得到一幅新的图像。
u 全比例缩放前后的两点之间的关系为:

u图像镜像,分为水平镜像和垂直镜像两种。

u水平镜像是以图像的垂直中轴为对称轴,将图像的左右两部分对换。

u垂直镜像是以图像水平中轴为对称轴,将图像的上下两部分对换

三、医学图像的数学空间变换

1、傅里叶变换

图像从空间域到空间频率域的变换,即傅里叶变换

图像可以看作一种2D信号,因此图像的傅里叶变换是2D傅里叶变换。

对图像做傅里叶变换之后,可以在频率域中简单而有效地实现图像增强处理和图像特征提取,因此图像的傅里叶变换在图像处理中得到了广泛的应用。

对图像做2D傅里叶变换,得到的结果称为图像的2D频谱,或傅里叶谱。

这些图像频谱(幅度谱)有一些共同的特征,即均有一定的对称性,且低频成分均较强。

2、离散余弦变换

离散余弦变换(DCT)是实数变换,即其频谱为频率的实函数。

而傅里叶变换是复数变换,即其频谱是频率的复函数

离散余弦变换后,图像信号的能量主要集中在低频区域。

如JPEG图像压缩标准就是把图像切分成若干小块,然后对每个小块做DCT,并抛弃DCT中的高频分量以实现对图像的压缩。

DCT谱的坐标原点在左上角,显然,其低频分量比较显著。

3、小波变换

图像的小波变换Wavelet Transform)把图像分解为4个频道:LLHLLHHH

Ø LL 代表图像的低频分量 ,其他 个频道代表不同方向的高频分量
Ø 对低频分量不断进行递归的小波变换,可以得到图像的多分辨率金字塔式分解,反映了图像在多尺度上的空域和频域局部特性。
Ø 小波变换在图像压缩和噪声抑制中应用广泛。

四、实验例程

1、医学影像的灰度运算与代数运算

1Matlab读入医学影像,添加零均值的高斯白噪声,利用加法运算消除噪声

clc;clear;close all;
I = imread('spine.tif');
imshow(I);title('原始脊柱影像','fontsize',20);
J1 = imnoise(I,'gaussian',0,0.01);  % 随机噪声-高斯噪声,均值0,标准差0.01
figure;imshow(J1);
J2 = imnoise(I,'gaussian',0,0.01); 
J3 = imnoise(I,'gaussian',0,0.01); 
J4 = imnoise(I,'gaussian',0,0.01); 
avarage1 = 0.5*J1 + 0.5*J2;
avarage2 = 0.25*J1 + 0.25*J2 + 0.25*J3 + 0.25*J4;
figure;imshow(avarage1);
figure;imshow(avarage2);

% 100次求平均
K = zeros(512,512);
for i = 1:100
    J = imnoise(I,'gaussian',0,0.02);
    J = im2double(J);
    K = K + J;
end
K = K/100;
figure;imshow(K);

2、医学影像的几何运算

1Matlab读入医学影像,添加零均值的高斯白噪声,利用加法运算消除噪声

clc;clear;close all;
I = imread('spine.tif');
imshow(I);title('原始脊柱影像','fontsize',20);

%% 图像平移
% se = translate(strel(1),[150 150]);  %  向下移动150像素,向右移动150像素
% Y = imdilate(I,se);  % 将影像按照se进行变换
% figure;
% imshow(Y);
Y0 = imtranslate(I,[150 150]);
figure;
imshow(Y0);
se1 = translate(strel(1),[-150 -150]);  %  向上移动150像素,向左移动150像素
Y1 = imdilate(I,se1);  % 将影像按照se进行变换
figure;
imshow(Y1);

%% 图像旋转
B1 = imrotate(I,-40,'bilinear');
B2 = imrotate(I,-40,'bilinear','crop');
B3 = imrotate(I,90,'bilinear');
B4 = imrotate(I,-40);
figure;
subplot(2,2,1);
imshow(B1);title('顺时针旋转40度,未裁切');
subplot(2,2,2);
imshow(B2);title('顺时针旋转40度,裁切');
subplot(2,2,3);
imshow(B3);title('逆时针旋转90度,未裁切');
subplot(2,2,4);
imshow(B4);title('顺时针旋转40度,最近邻');

%% 图像缩放
C = imresize(I,0.5);
figure;imshow(C);title('缩小影像');
D = imresize(I,2);
figure;imshow(D);title('放大影像');
E = imresize(I,[200,200]);
figure;imshow(E);title('规定尺寸缩放影像');

%% 图像镜像
F = flipud(I);
G = fliplr(I);
figure;
subplot(1,3,1);
imshow(I);title('原始影像');
subplot(1,3,2);
imshow(F);title('水平镜像');
subplot(1,3,3);
imshow(G);title('垂直镜像');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值