Xtravel的个人博客分享 http://blog.sciencenet.cn/u/Xtravel 专注于计算机视觉、模式识别与机器学习等智能领域算法及应用研究

博文

数字图像处理的图像增强技术——灰度变换

已有 8732 次阅读 2014-5-24 11:53 |系统分类:科研笔记| 直方图, 图像增强, 对比度

在数字图像处理技术中,图像增强技术是一个特别关键的技术。图像增强,顾名思义,就是增强图像的可识别度,让本不清晰的图像变得清晰,让本不明显的细节更加突出。图像增强的实质,是把原来灰度较为集中的图像在灰度级上均匀分布,也即增加了图像的对比度。图像增强应用的关键技术是灰度变换与空间滤波,本节着重介绍灰度变换。

   灰度变换分为负片变换、对数变换、指数变换和分段线性变换,其中分段线性变换又有对比拉伸、灰度切割和位图切割。灰度变换中较为重要的是直方图处理,又分为直方图均衡化和直方图规定化。下面简要介绍各种方法的MATLAB实现,以说明如何用MATLAB分析图像处理问题,为以后利用MATLAB进行算法验证与开发打下基础。在以下的程序中,f,g分别表示input和output。

   %负片变换

g=imcomplement(f);

   %对数变换

g=log(1+double(f));

   %对比拉伸

g=im2uint8(mat2gray(log(1+double(f))));

imshow(f),figure,imshow(g);%观察变换前后图像变化

   %直方图均衡化

clear;
f=imread('');
subplot(2,2,1)
imshow(f)
hold on
subplot(2,2,2)
imhist(f)
g=imhist(f);
g1=g(1:10:256);
horz=1:10:256;
subplot(2,2,3)
bar(horz,g1)
axis([0 255 0 1000])
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:100:1000)

   %直方图规定化
它与直方图均衡化不同之处仅在于histeq()函数的运用,在此不再赘述。
在思考过程中,我有一个问题:在对比拉伸中用了g=im2uint8(mat2gray(log(1+double(f))));直接用g=log(1+f)与上句有何区别?后来经过思考发现,MATLAB中存储数据要转换为uint8类型,而将double数据转换为uint8过程中,可能此数据不在【0,1】范围内,故用mat2gray函数将其转换为【0,1】的标准形式,然后用im2uint8转换为uint8类型存储。



https://blog.sciencenet.cn/blog-1349574-797274.html


收藏 IP: 61.53.175.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 07:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部