Matlab灰度图像反转,对数变换,幂次变换 |
您所在的位置:网站首页 › 幂数和指数转换 › 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为常数 γ为常数 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 |