MATLAB图像处理学习——图像增强技术(附图像增强方法代码)

目录

1.概论

(1)图像增强技术简介

(2)图像质量评估

2.空间域内的图像增强

 (1)显示灰度直方图

 (2)图像灰度值调整

 (3)图像亮度调节

 (4)灰度图像的反转变换

 3.直方图增强

 (1)RGB彩色图像的颜色直方图

 (2)直方图均衡化

 (3)直方图规定化


1.概论

(1)图像增强技术简介

    图像增强技术一般通过对图像的某些特征,例如边缘信息、轮廓信息和对比度等进行突出或增强,从而更好地显示图像的有用信息,提高图像的使用价值。

    传统的图像增强技术大多是基在空间域中对图像进行处理。(空间域的图像增强技术主要有灰度变换直方图方法等)

    通过傅里叶变换可以将图像从空间域转换到频域,在频域进行滤波,然后在使用傅里叶反变换转换到空间域。

(2)图像质量评估

    图像质量包含两方面的内容,一是图像的逼真度,即是被评价图像与原标准图像的偏离程度;二是图像的可懂性,指图像能向人或机器提供信息的能力。

    图像质量评价方法分为主观评价和客观评价。

2.空间域内的图像增强

(1)显示灰度直方图

 可以使用imhist()方法获取灰度图像的直方图,使用方法如下:

imhist(I):该函数绘制灰度图像I的直方图

imhist(I,n): 该函数指定灰度级的数目为n,n的默认值为256

imhist(X,map): 该函数绘制索引图像X的直方图

[counts,x]=imhist(...): 该函数返回直方图的数据,使用stem(x,counts)可以绘制直方图

代码(获取灰度图像的直方图):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
figure;
subplot(121),imshow(uint8(I));
subplot(122),imhist(I);

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第1张图片

 (2)图像灰度值调整

在matlab中提供imadjust()方法对图像灰度值进行调整,调用方法如下:

J=imadjust(I):该函数对图像I 进行灰度调整

J=imadjust(I,[low_in;high_in],[low_out;high_out]):该函数中[low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]为变换后的灰度范围

J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma):该函数中的gamma是映射的方式,默认值为1,即线性映射。当gamma不等于1时为非线性映射。

RGB2=imadjust(RGB1,... ):该函数对彩色图像的RGB1进行调整

代码(调整图像灰度值):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
J=imadjust(I,[0.2;0.5],[0;1]);
figure;
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第2张图片

 代码(调整灰度图像亮度):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
J=imadjust(I,[0.2;0.5],[0;1],0.4);
K=imadjust(I,[0.1;0.5],[0;1], 4);
figure;
subplot(121),imshow(uint8(J));
subplot(122),imshow(uint8(K));

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第3张图片

 代码(对彩色图像进行增强):

close all;clear all;clc;
I=imread('D:/resource_photo/4.jpg');
J=imadjust(I,[0.2 0.3 0;0.6 0.7 1],[]);
figure;
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第4张图片

 (3)图像亮度调节

在matlab中还可以通过函数brighten()改变灰度图像的亮度,调用方法如下:

brighten(beta):该函数改变图像的亮度,如果beta大于0小于1,则图像变亮;如果beta小于0大于-1,则图像变暗。

brighten(h,beta):该函数对句柄为h的图像进行操作

代码(调整灰度图像的亮度):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
figure,imshow(I);brighten(0.6);%图像变亮
figure,imshow(I);brighten(-0.6)%图像变暗

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第5张图片

 代码(通过函数stretchlim()和函数imadjust()进行图像增强):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
M=stretchlim(I);
J=imadjust(I,M,[]);
figure,imshow(uint8(I));
figure,imshow(uint8(J));

(在程序中,通过函数stretchlim()获取最佳的输入区间,然后通过函数imadjust()调整灰度,最后达到灰度图像增强的效果)

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第6张图片

 (4)灰度图像的反转变换

使用方法imcomplement()进行灰度图像的反转变换。

代码(灰度图像的反转变换):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
J=imcomplement(I)
figure,imshow(uint8(I));
figure,imshow(uint8(J));

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第7张图片

 3.直方图增强

(1)RGB彩色图像的颜色直方图

使用matlab提供的imhist方法。

代码(计算RGB彩色图像的颜色直方图):

close all;clear all;clc;
I=imread('D:/resource_photo/4.jpg');
figure;
subplot(141);imshow(uint8(I));
subplot(142);imhist(I(:,:,1));
title('R');
subplot(143);imhist(I(:,:,2));
title('G');
subplot(144);imhist(I(:,:,3));
title('B');

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第8张图片

 (2)直方图均衡化

在matlab图像处理工具箱中提供了函数histeq()进行直方图均衡化处理,其具体调用方法如下:

J=histeq(I,n):该函数中I为输入的原图像,J为直方图均衡化得到的图像,n为均衡化后的灰度级数,默认值为64

代码(直方图均衡化处理):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
J=histeq(I);
figure;
subplot(121);imshow(uint8(I));
subplot(122);imshow(uint8(J));
figure;
subplot(121);imhist(I,64);
subplot(122);imhist(J,64);

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第9张图片

 MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第10张图片

 (3)直方图规定化

J=histeq(I,hgram):该函数中hgram是一个整数向量,表示用户希望的直方图形状。

代码(对图像进行直方图规定化):

close all;clear all;clc;
I=imread('D:/resource_photo/1(1).tif');
hgram=ones(1,256);
J=histeq(I,hgram);
figure;
subplot(121);imshow(uint8(J));
subplot(122);imhist(J);

运行结果:

MATLAB图像处理学习——图像增强技术(附图像增强方法代码)_第11张图片

 

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