Matlab灰度图像反转,对数变换,幂次变换

Matlab灰度图像反转,对数变换,幂次变换

1 图像反转

**目的: ** 图像反转可以使得图像的灰度值发生反转,实现亮暗反转,暗边亮,亮边暗。

数学原理: 加入一个图像的灰度值范围为[0,255],设图像的一像素的灰度值为x,图像反转后灰度值Y=255-X

​ 假如一幅图的灰度级范围为[0,L-1]。 图像反转后灰度等级s=L-1-r 。 r为图像原来的亮度

 
%灰度取反Leena
clear all;
clc;


im1=imread('leena.png');  %读取原始彩色图像
subplot(1,3,1),imshow(im1);
imshow(im1)

im2=rgb2gray(im1);   %获得灰度图
subplot(1,3,2),imshow(im1);
imshow(im2)

im3=255-im2;         %灰度反转
subplot(1,3,3),imshow(im1);
imshow(im3)

在这里插入图片描述

2 对数变换

**目的:**通过对数变换将图像的灰度值较低的像素点的灰度调整到较高的值,通过这个方法可以扩展被压缩的高灰度值图像中的暗像素点。

原理图:

数学原理: s=(log(1+r)/log256 ) ×255** c为常数 ,r为像素点的灰度级,s为运算后的灰度级 , Matlab中的log默认以 e为低

代码:


clear all
clc
I=imread('leena.png');
I1=im2double(I);%对数运算设计小数,需将图片转为double ,相当于图片像素值除以255

subplot(1,2,1);
imshow(I1);
title('原图像');

L=log(I1*255+1)/log(256)*255;% I1*255得到图像原始的像素值,再进行对数运算 得到增强后的图像像素值
L1=uint8(L);

subplot(1,2,2);
imshow(L1);
title('经对数变换的图像');

效果图:

在这里插入图片描述

3幂次变换

目的:通过改变幂的值,可以实现让图像的像素整体变得更暗或者更亮

数学原理s=c * r^(γ) c为常数 γ为常数

img

clear all
clc

I=imread('leena.png');%读取图像
I1=im2double(I);
subplot(2,3,1)
imshow(I1)
title('原图像')


I2=1.1*I1.^(0.75);
subplot(2,3,2);
imshow(I2);
title('系数=1.1 γ=0.75图像')

I3=1.1*I1.^(0.5);
subplot(2,3,3);
imshow(I3);
title('系数=1.1 γ=0.55图像')


I4=1.1*I1.^(1.3);
subplot(2,3,4);
imshow(I4);
title('系数=1.1 γ=1.3图像')

I5=1.1*I1.^(2);
subplot(2,3,5);
imshow(I5);
title('系数=1.1 γ=2图像')


I6=1.1*I1.^(6);
subplot(2,3,6);
imshow(I5);
title('系数=1.1 γ=6图像')




  • 19
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值