点运算

调整亮度/对比度

线性函数



结论:如果一幅图像集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来扩展(斜率>1)物体的灰度区间以改善图像;同样,如果图像的灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
分段线性函数的作用:实际上是增强了原图各部分的反差,即增加图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。

非线性函数


内置函数


Matlab提供了stretchlim()函数,可以自动计算图像灰度值的最小值和最大值构成的区间,即需调整的范围。

直方图

灰度统计直方图

直方图修正

直方图均衡化

直方图规定化

理想情况下,直方图均衡化实现了图像灰度的均衡分布,对提高图像对比度、提升图像亮度具有明显的作用。在实际应用中,有时并不需要图像的直方图具有整体的均匀分布,而是希望直方图与规定要求的直方图一致,这就是直方图规定化。它可以人为地改变原始图像直方图的形状,使其成为某个特定的形状,是用于产生处理后有特殊直方图的图像处理方法。
在Matlab中没有直接实现直方图规定化的函数。但是可以通过imhist和histeq两个函数的结合使用来实现。

I=imread('pout.tif');
subplot(2,2,1),imshow(I);
title('模板图像');
subplot(2,2,2),imhist(I);
title('模板图像的直方图');
J=imread('tire.tif');
I_M=imhist(I);
K=histeq(J,I_M);
subplot(2,2,3),imshow(K);
title('规定化后的图像');
subplot(2,2,4),imhist(K);

彩色图像点运算

线性/非线性变换

sourceImage=im2double(imread('landscape.jpg'));
J=rgb2hsi(sourceImage);%RGB空间转换到HSI空间
H=J(:,:,1); %提取色调分量
S=J(:,:,2); %提取饱和度分量
I=J(:,:,3); %提取亮度分量 
%利用灰度变换,自动调整亮度分量的灰度范围
M=stretchlim(I); 
I_enhancing1=imadjust(I,M,[0 1],0.4); %亮度增大    
enhancingImage1=cat(3,H,S,I_enhancing1);%三分量合成
rgb1=hsi2rgb(enhancingImage1);%HSI空间转换到RGB空间 
I_enhancing2=imadjust(I,M,[0 1],4); %亮度降低 
enhancingImage2=cat(3,H,S,I_enhancing2);%三分量合成
rgb2=hsi2rgb(enhancingImage2);%HSI空间转换到RGB空间 
subplot(1,3,1);imshow(sourceImage);title('原始图像');
subplot(1,3,2);imshow(rgb1);title('HSI空间亮度增大');
subplot(1,3,3);imshow(rgb2);title('HSI空间亮度降低');

直方图均衡化

sourceImage=im2double(imread('people.jpg'));
 J=rgb2hsi(sourceImage);
 H=J(:,:,1);
 S=J(:,:,2);
 I=J(:,:,3);
 %利用直方图均衡化,调整亮度分量的灰度范围
 I_enhancing=histeq(I);   
 enhancingImage=cat(3,H,S,I_enhancing);
 rgb=hsi2rgb(enhancingImage);
 subplot(1,2,1);imshow(sourceImage);title('原始图像');
 subplot(1,2,2);imshow(rgb);title('直方图均衡化后图像');

直方图规定化

 sourceImage=im2double(imread('people.jpg'));
 J=rgb2hsi(sourceImage);
 H=J(:,:,1);%原始图像的色调分量
 S=J(:,:,2);%原始图像的饱和度分量
 I=J(:,:,3);%原始图像的亮度分量
 %利用直方图规定化,设置亮度分量的灰度范围
 object_M = im2double(imread('template.jpg'));
 J_M=rgb2hsi(object_M);
 H_M=J_M(:,:,1);%模板图像的色调分量
 S_M=J_M(:,:,2);%模板图像的饱和度分量
 I_M=J_M(:,:,3);%模板图像的亮度分量
 I_M_imhist = imhist(I_M);%模板图像的直方图
 I_enhancing= histeq(I,I_M_imhist);%直方图规定化处理
 enhancingImage=cat(3,H,S,I_enhancing);
 rgb=hsi2rgb(enhancingImage);
 subplot(1,3,1);imshow(sourceImage);title('原始图像');
 subplot(1,3,2);imshow(object_M);title('模板图像');
 subplot(1,3,3);imshow(rgb);title('直方图规定化后图像');
posted @ 2021-09-16 21:24  常进  阅读(185)  评论(0编辑  收藏  举报