请在MATLAB上对医学图像做出如下处理,并给出相应的代码。(1)图像对数变换 (2)幂次变换 (3)指数变换 (4)直方图均衡化 (5)拉普拉斯图像锐化。
时间: 2024-01-20 14:04:12 浏览: 78
数字图像处理技术与应用.pdf
好的,以下是MATLAB代码:
(1)图像对数变换:
```matlab
% 读入图像
img = imread('medical_image.jpg');
% 对数变换
c = 1;
img_log = c * log(1 + double(img));
img_log = uint8(img_log);
% 显示图像
figure, imshow(img_log);
title('Logarithmic transformation of medical image');
```
(2)幂次变换:
```matlab
% 读入图像
img = imread('medical_image.jpg');
% 幂次变换
c = 1;
gamma = 1.5;
img_power = c * double(img) .^ gamma;
img_power = uint8(img_power);
% 显示图像
figure, imshow(img_power);
title('Power-law transformation of medical image');
```
(3)指数变换:
```matlab
% 读入图像
img = imread('medical_image.jpg');
% 指数变换
c = 1;
alpha = 1.5;
img_exp = c * exp(alpha * double(img));
img_exp = uint8(img_exp);
% 显示图像
figure, imshow(img_exp);
title('Exponential transformation of medical image');
```
(4)直方图均衡化:
```matlab
% 读入图像
img = imread('medical_image.jpg');
% 直方图均衡化
img_eq = histeq(img);
% 显示图像
figure, imshow(img_eq);
title('Histogram equalization of medical image');
```
(5)拉普拉斯图像锐化:
```matlab
% 读入图像
img = imread('medical_image.jpg');
% 拉普拉斯滤波器
h = fspecial('laplacian');
img_lap = imfilter(img, h);
% 图像加权和
alpha = 0.5;
img_sharp = alpha * img + (1 - alpha) * img_lap;
img_sharp = uint8(img_sharp);
% 显示图像
figure, imshow(img_sharp);
title('Laplacian sharpening of medical image');
```
阅读全文