Matlab数字图像处理——图像的像素运算(灰度变换)

一、图像点运算

按照灰度变换的数学关系点运算可以分为:

  • 1、线性灰度变换
  • 2、分段线性变换
  • 3、非线性分段变换

二、线性灰度变换

Matlab中可用于灰度变换的函数:imadjust

以下代码将演示R、G、B三个通道单独变换以及全部变换的对比:

gamma = 0.5;                                    %设定调整线性变换的取值
I = imread('火影1.jpg');                        %读取图像并赋值给 I
R = I;                                          % R 用于保留图像的红色通道
R(:, :, 2) = 0;                                 %将R的绿色通道设为0
R(:, :, 3) = 0;                                 %将R的蓝色通道设为0
R1 = imadjust(R, [0.5 0.8], [0 1], gamma);      %函数imadjust调整R的灰度

G = I;                                          % G 用于保留图像的绿色通道
G(:, :, 1) = 0;                                 %将G的红色通道设为0
G(:, :, 3) = 0;                                 %将G的蓝色通道设为0
G1 = imadjust(G, [0 0.3], [0 1], gamma);        %函数imadjust调整G的灰度

B = I;                                          % B 用于保留图像的绿色通道
B(:, :, 1) = 0;                                 %将B的红色通道设为0
B(:, :, 2) = 0;                                 %将B的蓝色通道设为0
B1 = imadjust(B, [0 0.3], [0 1], gamma);        %函数imadjust调整B的灰度

I1 = R1 + G1 + B1;                              %变换后的RGB图像

figure;
subplot(241);imshow(R);title('仅红色通道');
subplot(242);imshow(R1);title('仅红色通道变换后');
subplot(243);imshow(G);title('仅绿色通道');
subplot(244);imshow(G1);title('仅绿色通道变换后');
subplot(245);imshow(B);title('仅蓝色通道');
subplot(246);imshow(B1);title('仅蓝色通道变换后');
subplot(247);imshow(I);title('原图像');
subplot(248);imshow(I1);title('三通道都变换后');

结果展示:
在这里插入图片描述

三、分段线性变换

I = imread('火影1.jpg');          %读取RGB图像
J = rgb2gray(I);                  %将RGB图像转化为灰度图
[M, N] = size(J);                 % M,N 获取图像行列数
x = 1;
y = 1;

for x = 1: M
    for y = 1:N
        if(J(x, y) <= 35);         %将像素值按大小分段处理
            H(x, y) = J(x, y) * 10;
        elseif(J(x, y) > 35 && J(x, y) <= 75);
            H(x, y) = (10 / 7) * [J(x, y) - 5] + 50;
        else(J(x, y) > 75);
            H(x, y) = (105 / 180) * [J(x, y) - 75] + 150;
        end
    end
end
figure;
subplot(131);imshow(I);          %显示原图像
subplot(132);imshow(J);          %显示灰度图像
subplot(133);imshow(H);          %显示线性变换后的图像

结果展示:
在这里插入图片描述

四、非线性变换

例如对数变换:

I = imread('火影1.jpg');          %读取RGB图像
G = rgb2gray(I);                  %将RGB图像转化为灰度图
J = double(G);                    %将数据类型转换为双精度
H = log(J + 1) / 10;              %进行基于对数的非线性灰度变换

figure;
subplot(131);imshow(I);           %原图像
subplot(132)
imshow(G);                        %灰度图
subplot(133)
imshow(H);                        %对数变换图像

结果展示:
在这里插入图片描述

完整目录

Matlab数字图像处理——图像处理工具箱Image Processing Toolbox
Matlab数字图像处理——图像类型的转换
Matlab数字图像处理——图像文件的读取
Matlab数字图像处理——图像文件的显示
Matlab数字图像处理——视频文件的读写
Matlab数字图像处理——图像的像素运算(灰度变换)
Matlab数字图像处理——图像的空间变换
Matlab数字图像处理——图像的平移、邻域操作、区域选取
Matlab数字图像处理——图像增强
Matlab数字图像处理——图像复原

  • 6
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是土豆大叔啊!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值