MATLAB常用图像图像预处理算法汇总(一)

1,图像归一化
matlab里图像数据有时候必须是浮点型才能处理,而图像数据本身是0-255的UNIT型数据所以需要归一化,转换到0-1之间。因此归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

function I1 = Image_Normalize(I, flag)

if nargin < 2
    flag = 1;
end
if size(I, 1) > 2000
    I = imresize(I, 0.2, 'bilinear');
end
I1 = imadjust(I, [0 0.6], [0 1]);

if flag
    figure('units', 'normalized', 'position', [0 0 1 1]);
    subplot(2, 1, 1); imshow(I, []); title('x1', 'FontWeight', 'Bold');
    subplot(2, 1, 2); imshow(I1, []); title('x2', 'FontWeight', 'Bold');
end

2,图像平滑
突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。

function I2 = Image_Smooth(I1, hsize, sigma, flag)

if nargin < 4
    flag = 1;
end
if nargin < 2
    hsize = [3 3];
    sigma = 0.5;
end
h = fspecial('gaussian', hsize, sigma);
I2 = imfilter(I1, h, 'replicate');

3,图像二值化
将图像上的像素点的灰度值设置为0或255

function bw2 = Image_Binary(I, flag)

if nargin < 2
    flag = 1;
end
bw1 = im2bw(I, graythresh(I));
bw2 = ~bw1;

你可能感兴趣的:(算法,matlab)