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

您所在的位置:网站首页 幂数和指数转换 Matlab灰度图像反转,对数变换,幂次变换

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

2023-07-27 06:14| 来源: 网络整理| 查看: 265

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图像')


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3