MATLAB基本图像处理2

这篇博客介绍了MATLAB中图像处理的一些基本操作,包括分段线性灰度变换、Gamma变换、直方图均衡化、直方图规格化、中值滤波、图像频域滤波(理想低通滤波器和Butterworth高通滤波器)以及同态滤波。通过实例展示了各种变换和滤波的效果,并探讨了在处理过程中遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于只是为了粗略验证课上所学,代码的编写非常粗糙。存在无效的类型转换,缺乏归一化,大量使用循环以及胡乱命名等现象,还请见谅。

分段线性灰度变换

利用线性变化,对灰度级做出调整。当斜率大于1时,相当于提高该点的灰度级,也就是变亮。

做如图所示分段线性

dot_in=0:0.1:255;
 
for i = 1 : length(dot_in)
    dot_out(i)=linear( dot_in(i)) ;
end
plot(dot_in,dot_out,'LineWidth',2);
title('k=3;k=0.125')
grid on ;
 
 
function out=linear(t)
    if t <80
        out= 3*t;
    else
        if t<160
        out= t+160;
 
        else
        out=t/8+300;
        end
    end
end

在这里插入图片描述
直接做灰度变换

clc;
close all;

I=imread('me.jpg');
% 原灰度图
org=rgb2gray(I);
%改变数据类型
I=double(rgb2gray(I));
%矩阵大小
[x,y] = size(I);

% 做分段线性
for i = 1:x
    for j=1:y
        I(i,j)=linear( I(i,j));
    end
end

%归一化
img=normal(I);
%绘图
figure (1)
subplot(1,2,1)
imshow(img,[]);
title('经过分段线性变换后')
subplot(1,2,2)
imshow(org,[]);
title('原灰度图')
 
 % 线性化
function out=linear(t)
    if t <80
        out= 3*t;
    else
        if t<160
        out= t+200;
        
        else
        out=t/8+340;
        end
    end
end

%归一化
function y=normal(img_dot)
    [u,v] = size(img_dot);
    img_dot=double(img_dot);
    img_normal=double(zeros(u,v)) ;
    max_dot=max(max(img_dot));
    min_dot=min(min(img_dot));
    distance=double(max_dot-min_dot) ;    
    for i = 1: u
        for j =1:v
            img_normal(i,j)= double ((img_dot(i,j)-min_dot)/distance*255);
            img_normal(i,j)=round(img_normal(i,j));
            img_normal(i,j)=min(img_normal(i,j),255);
            img_normal(i,j)=max(img_normal(i,j),0);
        end
    end
    y= (img_normal );
end

Gamma变换

在这里插入图片描述
此时gamma小于1,图像整体变亮。

clc;
close all;

I=imread('me.jpg');
 
% 原灰度图
org=rgb2gray(I);
%改变数据类型
I=double(rgb2gray(I));
%矩阵大小
[x,y] = size(I);
 
 
% 做非线性
gamma=0.3;
for i = 1:x
    for j=1:y
        I(i,j)=none_linear( I(i,j),gamma);
    end
end
 
%归一化
img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值