亮度变换与空间滤波

亮度变换:

function out = imadjust(varargin)是MATLAB对灰度图像进行亮度变换的基本工具;

J = IMADJUST(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT]) maps the values in intensity image I to new values in J such that values between LOW_IN and HIGH_IN map to values between LOW_OUT and HIGH_OUT. Values below LOW_IN and above HIGH_IN are clipped; that is, values below LOW_IN map to LOW_OUT, and those above HIGH_IN map to HIGH_OUT. You can use an empty matrix ([]) for [LOW_IN; HIGH_IN] or for [LOW_OUT; HIGH_OUT] to specify the default of [0 1]. If you omit the argument, [LOW_OUT; HIGH_OUT] defaults to [0 1].

J = IMADJUST(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT],GAMMA) maps the values of I to new values in J as described in the previous syntax. GAMMA specifies the shape of the curve describing the relationship between the values in I and J. If GAMMA is less than 1, the mapping is weighted toward higher (brighter) output values. If GAMMA is greater than 1, the mapping is weighted toward lower (darker) output values. If you omit the argument, GAMMA defaults to 1 (linear mapping).

以上基本上说明了函数的特性及用法;

也可以使用对数拉伸变换对灰度图像进行亮度处理,本质同样是通过函数将原图像映射形成新的图像;

下面MATLAB代码对常见亮度变换进行了总结,具体映射方法可通过代码得到;

function g=intrans(f,varargin)
error(nargchk(2,4,nargin));
classin=class(f);

if strcmp(class(f),‘double‘) & max(f(:))>1 & ...
        ~strcmp(varargin{1},‘log‘)
    f=mat2gray(f);
else
    f=im2double(f);
end

method=varargin{1};
switch method
    case ‘neg‘
        g=imcomplement(f);
    case ‘log‘
        if length(varargin)==1
            c=1;
        elseif length(varargin)==2
            c=varargin{2};
        elseif length(varargin)==3
            c=varargin{2};
            classin=varargin{3};
        else
            error(‘incorrect number of inputs for the log option‘);
        end
        g=c*(log(1+double(f)));
    case ‘gamma‘
        if length(varargin)<2
            error(‘not enough inputs for the gamma option‘);
        end
        gam=varargin{2};
        g=imadjust(f,[],[],gam);
    case ‘stretch‘
        if length(varargin)==1
            m=mean2(f);
            E=4;
        elseif length(varargin)==3
            m=varargin{2};
            E=varargin{3};
        else
            error(‘incorrect number of inputs for the stretch‘);
        end
        g=1./(1+(m./(f+eps)).^E);
    otherwise
        error(‘unknown enhancement method‘);
end
g=changeclass(classin,g);

直方图均衡化:

直方图均衡化是通过灰度变换将一幅图象转换为另一幅在每个灰度级上都具有相同的象素点数的过程,其映射方法为原图像概率分布函数;推导点我。其依据于映射前后概率密度函数对应面积元相等。

直方图规定化:

若原始图像直方图暗色分量过分集中在0附件,导致累计变换函数过分陡峭,映射原图像至较高灰度级,出现另一种极端(过亮),处理这种情况可使用直方图规定化。直方图规范化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式,如使图象与某一标准图象具有相同的直方图,或使图象具有某一特定函数形式的直方图。

时间: 2024-10-17 06:10:42

亮度变换与空间滤波的相关文章

MATLAB图像处理——学习笔记

由于工作需要,开始研究一下MATLAB图像处理相关的知识,图像处理只是matlab应用领域中小小的一部分而已.以前只是听说过MATLAB很强大,但没有系统的学过,如今开始学时,发现matlab确实很不错.很高大上.操作起来很方便,特别是编写程序时,比C语言更简洁. 很多人都是大学里就学过matlab的,由于是半路出家,所以知识不是很全面,直接拿了一本冈萨雷斯的MATLAB版的书就开始看,下面做一些简单的小记录. 1. matlab命令基础: clc--清除窗口 clear--清除之前赋值过的变量

[DIP] 数字图像处理 CH03

---慢慢地go through冈萨雷斯的DIP和配套的matlab,记下一些零碎的知识点给自己以后复习. DIP CH03 亮度变换与空间滤波 矩阵A=[1,2,3;4,5,6] sum(A,1)对A的第一个维度求和,sum(A,2)对A的第二个维度求和: prod(A,n),max(A,n),min(A,n),mean(A,n)类似,分别对A的第n个维度求乘积,最大值,最小值和平均值: 默认n=1,所以要对矩阵A所有元素求和,可以sum(sum(A)),相当于sum(sum(A,1),2),

数字图像处理学习笔记之二 灰度变换与空间滤波

综述 对于图像的处理有两种思路,一种是对图像本身的直接处理,即空间域处理:另一种是在频率域进行处理.关于空域和频域,可以参考<傅里叶变换--另一种世界观>.在空间域的处理相对简单,因此首先介绍的是空域处理法.空域中有两种重要处理方法:灰度变换(或亮度变换)和空间滤波(或邻域处理.空间卷积). 空间域处理:灰度变换和空间滤波 g(x,y)=T[ f(x,y) ] 空域处理的思路可以由上式表达.f 即是原图,T 是在点(x,y)指定邻域上的图像处理算子,g 是输出图像.当邻域为1*1大小时,T 为

数字图像处理的Matlab实现(3)—灰度变换与空间滤波

第3章 灰度变换与空间滤波(1) 3.1 简介 空间域指的是图像平面本身,这类方法是以对图像像素直接处理为基础的.本章主要讨论两种空间域处理方法:亮度(灰度)变换与空间滤波.后一种方法有时涉及到邻域处理或空间卷积. 本章讨论的空间域处理由下列表达式表示: \[g(x,y)=T[f(x,y)]\] 其中,\(f(x,y)\)为输入图像,\(g(x,y)\)为输出图像, \(T\)是对图像\(f\)的算子,作用于点\((x,y)\)定义的邻域.此外,\(T\)还可以对一组图像进行处理,例如为了降低噪

视频图像去模糊常用处理方法

视频图像去模糊常用处理方法 随着“平安城市”的广泛建设,各大城市已经建有大量的视频监控系统,虽然监控系统己经广泛地存在于银行.商场.车站和交通路口等公共场所,但是在公安工作中,由于设备或者其他条件的限制,案情发生后的图像回放都存在图像不清晰,数据不完整的问题,无法为案件的及时侦破提供有效线索.经常出现嫌疑人面部特征不清晰,难以辨认,嫌疑车辆车牌模糊无法辨认等问题.这给公安部门破案.法院的取证都带来了极大的麻烦.随着平安城市的推广.各地各类监控系统建设的进一步推进,此类问题会越来越突出. 一.模糊

学习数字图像处理_1

结束了数据结构的内容之后,在图书馆接着看数字图像处理的内容.教材以冈萨雷斯编写的<数字图像处理(第三版)>和<数字图像处理(matlab版)>为主.前期看的是后者,后者较薄,且以介绍matlab的各种图像处理相关函数和编程为主,原理讲的较少,前4章还能大概看懂程序,到图像复原这章由于基础知识不到位看的比较吃力,所以网上买了纯理论的第一本书.两本结合着看,前期还是以基础知识为主吧,matlab编程本身难度不大,主要是理解算法原理,虽然大部分算法matlab已经编好放在map工具箱中的

HEVC学习之二CTU, CU, CTB, CB, PB, TB

在H264标准中,编码层的核心是宏块,一个宏块大小为16X16,包含一个16X16的亮度块,以及对于常用的4:2:0采样格式来说还包含两个8X8的色度块.相对应的在HEVC中类似的结构为编码树单元(CTU),其尺寸可以由编码器指定,最大可以支持到64X64,最小可以支持到16X16.对于高分辨率视频的编码中,使用较大尺寸的CTU可以获得更好的压缩性能.这里以最大的64X64大小的CTU为例说明HEVC的编码树结构. HEVC先根据编码器设置的CTU大小对整帧的图像进行分块,如图所示每一个CTU大

OpenCV2.4+遍历读写像素方法总结及时间度量

以下文本及代码基本基于<OpenCV 2.4.13.0 documentation>的How to scan images, lookup tables and time measurement with OpenCV一节,英文好的同学可以直接看原文. 1. 颜色压缩 颜色压缩(Color Reduction)最简单的理解就是减少表示图像的颜色数目,我们都知道,8位位深的3通道RGB真彩图像包括了1600多万(16777216)的颜色数目,其实在某些应用中用不到这么多数量(例如图像传输(tra

转载:LBP的初步理解

转自http://blog.csdn.net/ty101/article/details/8905394 本文的PDF版本,以及涉及到的所有文献和代码可以到下列地址下载: 1.PDF版本以及文献:http://download.csdn.net/detail/ty101/5349816 2.原作者的MATLAB代码:http://download.csdn.net/detail/ty101/5349894 LBP一种用来描述图像纹理特征的算子,该算子由芬兰奥卢大学的T.Ojala等人在1996年