(一)数字图像的基本操作和灰度变换
1,图像灰度的线性变换
灰度的线性变换可以突出图像中的重要信息。通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[0,255]。那么,从原理上讲,我们就只能通过抑制非重要信息的对比度来腾出空间给重要信息进行对比度展宽。
设原图像的灰度为f(i,j),处理后的图像的灰度为g(i,j),对比度线性展宽的原理示意图如上图所示。假设原图像中我们关心的景物的灰度分布在[fa,fb]区间内,处理后的图像中,我们关心的景物的灰度分布在[ga,gb]区间内。在这里△g=(ga-gb)>△f=(fb-fa),也就是说我们所关心的景物的灰度级得到了展宽。根据图中所示的映射关系中分段直线的斜率我们可以得出线性对比度展宽的计算公式:
2,直方图均衡化
直方图均衡化是将原始图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
离散图像均衡化处理可通过变换函数: 来实现。
3,图像灰度线性变换的实现
3.1,读入一幅灰度图像test1.jpg,显示其灰度直方图
[code]clc; clear; close all; I = imread('test1.jpg','jpg'); %自己设置路径 subplot(1,2,1); imshow(I); title('原图'); subplot(1,2,2); imhist(I); title('原图直方图');
3.2,根据图像灰度直方图,选择所关心的图像景物的灰度分布范围[fa,fb],以及拟变换的灰度分布范围[ga,gb]
①确定灰度变换范围为fa=100,fb=150,ga=50,gb=200,则线性变换结果如下:
[code]clc; clear; close all; %①fa=100;fb=150;ga=50;gb=200; I=imread('test1.jpg','jpg'); %自己设置路径 subplot(1,2,1); imshow(I); fa=100; fb=150; ga=50; gb=200; a=ga/fa; b=(gb-ga)/(fb-fa); c=(255-gb)/(255-fb); [M,N]=size(I); for i=1:M for j=1:N if I(i,j)<=fa I(i,j)=a*I(i,j); else if I(i,j)<=fb I(i,j)=b*(I(i,j)-fa)+ga; else I(i,j)=c*(I(i,j)-fb)+gb; end end end end subplot(1,2,1); imshow(I); title('test1变换后'); subplot(1,2,2); imhist(I); title('test1变换后灰度直方图');
由此可以看出,将图像灰度在100到150之间的部分进行灰度拉伸,其他部分灰度压缩,图像整体变暗了,但因为拉伸的灰度值处于中间部分,所以效果不明显。
② 确定灰度变换范围为fa=30,fb=50,ga=30,gb=200,则线性变换结果如下:
[code]clc; clear; close all; %fa=30;fb=50;ga=30;gb=200; I=imread('test1.jpg','jpg'); %自己设置路径 fa=30; fb=50; ga=30; gb=200; a=ga/fa; b=(gb-ga)/(fb-fa); c=(255-gb)/(255-fb); [M,N]=size(I); for i=1:M for j=1:N if I(i,j)<=fa I(i,j)=a*I(i,j); else if I(i,j)<=fb I(i,j)=b*(I(i,j)-fa)+ga; else I(i,j)=c*(I(i,j)-fb)+gb; end end end end subplot(1,2,1); imshow(I); title('test1变换后'); subplot(1,2,2); imhist(I); title('test1变换后灰度直方图');
将灰度值处于30至50之间的部分进行拉伸,其他部分压缩,图像变换效果比较明显。30至50位于直方图低灰度值部分,所以图像变亮。
4,读入一幅灰度图像test2.jpg求出其直方图,利用Matlab函数实现图像的均衡化处理
[code]clc; clear; close all; I=imread('test2.jpg','jpg'); %自己设置路径 subplot(2,2,1); imshow(I); title('test2原始图像'); subplot(2,2,2); imhist(I); title('test2灰度直方图'); G=histeq(I); subplot(2,2,3); imshow(G); title('test2均衡化图像'); subplot(2,2,4); imhist(G); title('test2均衡化后的直方图');
附上实验原图
阅读更多
- 数字图像处理基本算法实现(1)--section3.2基本灰度变换
- 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)
- Python图像灰度变换及图像数组操作
- OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作
- VTK修炼之道23:图像基本操作_灰度图像映射成伪彩色图像(查表法)
- 数字图像基本操作及灰度调整
- 数字图像处理之灰度变换
- 【数字图像处理】灰度变换
- 【数字图像】灰度变换与空间滤波
- [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
- VTK修炼之道23:图像基本操作_灰度图像映射成伪彩色图像(查表法)
- Python图像灰度变换及图像数组操作
- 【数字图像处理】[1]--灰度变换增强
- 系统学习数字图像处理之灰度变换和空域滤波
- 数字图像的基本操作
- 数字图像处理——灰度变换与空间滤波(使用MFC)
- 数字图像处理——Matlab GUI与灰度变换函数
- [数字图像处理]灰度变换——直方图处理
- [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
- 图像灰度变换及图像数组操作