数字图像处理学习笔记1:图像增强之灰度变换(灰度反转,对数变换,冥律变换)

文章目录

  • 前言
  • 一、灰度反转
    • 1.计算公式(以256级灰度图为例)
    • 2.MATLAB代码
  • 二、对数变换
    • 1.计算公式
    • 2.MATLAB代码
  • 三、冥律变换
    • 1.计算公式
    • 2.MATLAB代码
    • 3.伽马系数
  • 四、分段线性变换
    • 1.对比度拉伸
    • 2.灰度级分层
    • 3.比特平面分层


前言

灰度变换直接作用于图像像素,改变像素灰度值。灰度变换主要包括:1、灰度反转;2、对数变换;3、冥律变换;4、分段线性变换。学习教材:数字图像处理(冈萨雷斯)


一、灰度反转

图像反转将灰度图像的黑白对调。

1.计算公式(以256级灰度图为例)

g(x,y)=255-f(x,y)

2.MATLAB代码

代码如下(示例):

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1);   %获得灰度图
figure
imshow(im2)
im3=255-im2;         %灰度反转
figure
imshow(im3)

二、对数变换

1.计算公式

s=c*log(1+r)

c为常数,r>=0.

2.MATLAB代码

代码如下(示例)

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)
im2=im2double(im2);   %log运算一般处理double类型
c=2;                  %系数c
im3=c*log(1+im2);     %对数变换,或者S=log(1+v*r)/(log(v+1));
im3=im2uint8(im3);    %MATLAB一般显示uint8类型
figure
imshow(im3)

三、冥律变换

1.计算公式

在这里插入图片描述

2.MATLAB代码


代码如下(示例)

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)
im2=im2double(im2);   %运算一般处理double类型
c=2;                  %系数c
a=2;                  %系数a
im3=c*im2.^a;         %冥律变换
im3=im2uint8(im3);    %MATLAB一般显示uint8类型
figure
imshow(im3)

3.伽马系数

数字图像处理学习笔记1:图像增强之灰度变换(灰度反转,对数变换,冥律变换)_第1张图片

四、分段线性变换

1.对比度拉伸

用于扩展图像灰度级

示例图:
数字图像处理学习笔记1:图像增强之灰度变换(灰度反转,对数变换,冥律变换)_第2张图片
对应公式:

在这里插入图片描述

对应MATLAB程序:
代码如下(示例)

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)
[M,N]=size(im2);

for x=1:M                 %分段线性变换
  for y=1:N
    if im2(x,y)<=80
        im3(x,y)=im2(x,y)/2;
    elseif im2(x,y)>80&&im2(x,y)<=160
        im3(x,y)=2*im2(x,y)-120;
    else         
        im3(x,y)=(11/19)*im2(x,y)+107+7/19;
     end
  end
end
im3=uint8(im3);
figure
imshow(im3)

2.灰度级分层

突出图像中特定灰度范围的亮度

数字图像处理学习笔记1:图像增强之灰度变换(灰度反转,对数变换,冥律变换)_第3张图片图来自数字图像处理教材

3.比特平面分层

如对灰度级为256即2^8的图像来说,将图像分为8个比特层:
第一层:
在这里插入图片描述
第二层:
在这里插入图片描述
同理得到8幅图像。

你可能感兴趣的:(图像处理2(c++,opencv),matlab,计算机视觉)