1.灰度变换
% 载入图像
fileurl = fullfile(pwd, 'images', 'IM1.dcm');figure; imshow(Y4, []); title('直方图均衡化');
2.直方图统计
I = imread('rice.png');
% 矩形框
rect = [10 10 20 20];
% 图像裁剪
J = imcrop(I, rect);
% 默认的直方图统计
[counts, x] = imhist(J);
figure;
subplot(2, 2, 1); imshow(I, []); title('原图像');
rectangle('Position', rect, 'EdgeColor', 'r');
subplot(2, 2, 2); imshow(J, []); title('裁剪图像');
subplot(2, 2, 3); imhist(I); axis auto; title('原图像直方图')
subplot(2, 2, 4); imhist(J); axis auto; title('裁剪图像直方图');
figure;
subplot(2, 2, 1); imshow(I, []); title('原图像');
rectangle('Position', rect, 'EdgeColor', 'r');
subplot(2, 2, 2); imshow(J, []); title('裁剪图像');
subplot(2, 2, 3); imhist(J); axis auto; title('默认的裁剪直方图');
subplot(2, 2, 4); plot(x, counts); axis auto;
set(gca, 'YLim', [0 30])
title('频数统计的直方图');
3.平滑滤波
clc; clear all; close all;
I = imread('rice.png');
figure; imshow(I); title('原图像')
I = double(I);
h = [1 1 1
1 1 1
1 1 1]/9;
J = imfilter(I, h, 'replicate');
figure; imshow(mat2gray(J)); title('均值滤波');
S = medfilt2(I);
figure; imshow(mat2gray(S)); title('中值滤波');
4.锐化滤波
clc; clear all; close all;
I = imread('rice.png');
figure; imshow(I); title('原图像');
I = double(I);
h = [1 2 1
0 0 0
-1 -2 -1];
J = imfilter(I, h, 'replicate');
figure; imshow(mat2gray(J)); title('sobel滤波器');
h2 = [0.1667 0.6667 0.1667
0.6667 -3.3333 0.6667
0.1667 0.6667 0.1667];
S = imfilter(I, h2, 'replicate');
figure; imshow(mat2gray(S)); title('拉普拉斯滤波器');
5.混合图像增强
clc; clear all; close all;J = rgb2gra增强y(J);
end
% double变换
I = im2double(J);
% 拉普拉斯变换得到M1
h1 = fspecial('laplacian');
M1 = imfilter(I,h1);
% 与原图相加得到M2,锐化原图
M2 = M1+I;
% sobel
h2 = fspecial('sobel')';
h3 = fspecial('sobel');
Sx = imfilter(I, h2);
Sy = imfilter(I, h3);
% 梯度
M3 = sqrt(Sx.^2 + Sy.^2);
% 均值
h4 = fspecial('average');
M4 = imfilter(I,h4);
M5 = M2.*M4;
M6 = I+M5;
% 灰度拉伸
M7 = 2*M6.^1.15;
figure;
subplot(241);imshow(I);title('原图像');
subplot(242);imshow(M1);title('拉普拉斯变换');
subplot(243);imshow(M2);title('锐化结果1');
subplot(244);imshow(M3);title('梯度');
subplot(245);imshow(M4);title('均值');
subplot(246);imshow(M5);title('锐化结果2');
subplot(247);imshow(M6);title('锐化增强');
subplot(248);imshow(M7);title('灰度拉伸');
res = M7;
figure; imshow(I); title('原图像');
figure; imshow(res); title('混合增强的效果');