美文网首页
图像预处理流程

图像预处理流程

作者: 景宝宝1号 | 来源:发表于2018-08-20 17:10 被阅读0次

图像预处理主要包括去噪、对比度增强,去噪和对比度增强方法顺序不唯一,根据实际情况作出最好的安排。

1、灰度化

http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html

那么什么叫图片的灰度化呢?其实很简单,就是让像素点矩阵中的每一个像素点都满足下面的关系:R=G=B(就是红色变量的值,绿色变量的值,和蓝色变量的值,这三个值相等,“=”的意思不是程序语言中的赋值,是数学中的相等),此时的这个值叫做灰度值。

灰度处理的方法:

   一般灰度处理经常使用两种方法来进行处理。

 方法1:

     灰度化后的R=(处理前的R + 处理前的G +处理前的B)/ 3

    灰度化后的G=(处理前的R + 处理前的G +处理前的B)/ 3

     灰度化后的B=(处理前的R + 处理前的G +处理前的B)/ 3

方法2:

     灰度化后的R =处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

     灰度化后的G =处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

     灰度化后的B =处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

2、高斯滤波、均值滤波、中值滤波、双边滤波(去噪)

https://blog.csdn.net/u013007900/article/details/78181249

高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小。

均值滤波及中值滤波的区别

均值滤波和和中值滤波都可以起到平滑图像,虑去噪声的功能。均值滤波采用线性的方法,平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好,对高斯噪声表现较差。

http://www.360doc.com/document/18/0320/20/52973095_738813007.shtml

中值滤波介绍及C实现

https://www.cnblogs.com/qiqibaby/p/5281743.html

双边滤波:

双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平均的方法,用周边像素亮度值的加权平均代表某个像素的强度,所用的加权平均基于高斯分布[1]。最重要的是,双边滤波的权重不仅考虑了像素的欧氏距离(如普通的高斯低通滤波,只考虑了位置对中心像素的影响),还考虑了像素范围域中的辐射差异(例如卷积核中像素与中心像素之间相似程度、颜色强度,深度距离等),在计算中心像素的时候同时考虑这两个权重。 公式1a,1b给出了双边滤过的操作,Iq为输入图像,Ipbf为滤波后图像:

双边滤波的核函数是空间域核与像素范围域核的综合结果:在图像的平坦区域,像素值变化很小,对应的像素范围域权重接近于1,此时空间域权重起主要作用,相当于进行高斯模糊;在图像的边缘区域,像素值变化很大,像素范围域权重变大,从而保持了边缘的信息。

(双边滤波算法)原理及实现:

https://blog.csdn.net/piaoxuezhong/article/details/78302920

3、gamma矫正

https://blog.csdn.net/w450468524/article/details/51649651

https://www.cnblogs.com/qiqibaby/p/5325193.html

(Gamma Correction,伽玛校正):所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线(Gamma Curve)。

以传统CRT(Cathode Ray Tube)屏幕的特性而言,该曲线通常是一个乘幂函数,Y=(X+e)γ,其中,Y为亮度、X为输出电压、e为补偿系数、乘幂值(γ)为伽玛值,改变乘幂 值(γ)的大小,就能改变CRT的伽玛曲线。典型的Gamma值是0.45,它会使CRT的影像亮度呈现线性。使用CRT的电视机等显示器屏幕,由于对于 输入信号的发光灰度,不是线性函数,而是指数函数,因此必需校正

4、直方图均衡化

直方图均衡化(Histogram Equalization) 又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。

 直方图是表示数字图像中每一灰度出现频率的统计关系。直方图能给出图像灰度范围、每个灰度的频度和灰度的分布、整幅图像的平均明暗和对比度等概貌性描述。灰度直方图是灰度级的函数, 反映的是图像中具有该灰度级像素的个数, 其横坐标是灰度级r, 纵坐标是该灰度级出现的频率( 即像素的个数) pr( r) , 整个坐标系描述的是图像灰度级的分布情况, 由此可以看出图像的灰度分布特性, 即若大部分像素集中在低灰度区域, 图像呈现暗的特性; 若像素集中在高灰度区域, 图像呈现亮的特性。

 图1所示就是直方图均衡化, 即将随机分布的图像直方图修改成均匀分布的直方图。基本思想是对原始图像的像素灰度做某种映射变换, 使变换后图像灰度的概率密度呈均匀分布。这就意味着图像灰度的动态范围得到了增加, 提高了图像的对比度。

①求该图像的灰度直方图。②对该图像进行直方图均衡化处理,写出过程和结果。

首先需要说明的是,如果你说的是一道完整的题目,则这道题目没有唯一解,因为题目中没有说明原始图像的灰度级数(比如原始图像是16个灰度级的,或者是32个灰度级的,等等)。为了给你提供一个解题思路,现在人为假设原始图像是16个灰度级的,其它灰度级的解法类似。

图像的灰度直方图求法为:

先计算图像中各个灰度级的出现频率,用h(i)表示灰度级i的出现频率,其值等于灰度级出现次数/图像像素个数:

h(0)=2/16,h(1)=1/16,h(2)=3/16,h(3)=2/16,h(4)=0/16

h(5)=1/16,h(6)=4/16,h(7)=1/16,h(8)=1/16,h(9)=1/16

h(10)=h(11)=h(12)=h(13)=h(14)=h(15)=0/16。

图像进行直方图均衡化处理的过程为:

先计算累积分布,用r(i)表示灰度级i的累积分布:

r(0)=h(0)=2/16

r(1)=r(0)+h(1)=2/16+1/16=3/16

r(2)=r(1)+h(2)=3/16+3/16=6/16

r(3)=r(2)+h(3)=6/16+2/16=8/16

r(4)=r(3)+h(4)=8/16+0/16=8/16

r(5)=r(4)+h(5)=8/16+1/16=9/16

r(6)=r(5)+h(6)=9/16+4/16=13/16

r(7)=r(6)+h(7)=13/16+1/16=14/16

r(8)=r(7)+h(8)=14/16+1/16=15/16

r(9)=r(8)+h(9)=15/16+1/16=16/16=1

r(10)=r(11)=r(12)=r(13)=r(14)=r(15)=1

将累积分布进行量化(量化时需要用到原始图像的灰度级数,这也是为什么前面需要说明的原因),量化后的灰度级用rq(i)表示,量化公式为rq(i)=ROUND(r(i)*15),(说明:量化公式中的15等于原始图像灰度级数减1),可得:

rq(0)=ROUND(r(0)*15)=2

rq(1)=ROUND(r(1)*15)=3

rq(2)=ROUND(r(2)*15)=6

rq(3)=ROUND(r(3)*15)=8

rq(4)=ROUND(r(4)*15)=8

rq(5)=ROUND(r(5)*15)=8

rq(6)=ROUND(r(6)*15)=12

rq(7)=ROUND(r(7)*15)=13

rq(8)=ROUND(r(8)*15)=14

rq(9)=ROUND(r(9)*15)=15

rq(10)=ROUND(r(10)*15)=15

rq(11)=ROUND(r(11)*15)=15

rq(12)=ROUND(r(12)*15)=15

rq(13)=ROUND(r(13)*15)=15

rq(14)=ROUND(r(14)*15)=15

rq(15)=ROUND(r(15)*15)=15

因此,原始图像中的灰度级和均化后图像中的灰度级之间的对应关系为:

0->2  1->3   2->6   3->8  4->8   5->8   6->12  7->13   8->14   9->15

10->15 11->15   12->15   13->15 14->15   15->15

#include

#include

#include

usingnamespacestd;

intmain(intargc,char** argv)

{

//载入图片

inti=0, j=0, temp=0;

IplImage * img = cvLoadImage("D:\\2.jpg", CV_LOAD_IMAGE_GRAYSCALE);//图片路径

intheight = img->height;

intwidth  = img->width;

intstep  = img->widthStep;

uchar *data = (uchar*)img->imageData;

floatsize = height*width;

//直方图

unsignedinthist[256] = {0};

for(i=0; i

{

for(j=0; j

{

temp = data[i*step+j];

hist[temp]++;

}

}

//归一化直方图

floathistPDF[256] = {0};

for(i=0; i<255; i++)

{

histPDF[i]=(float)hist[i]/size;

}

//累积直方图

floathistCDF[256] = {0};

for(i=0; i<256; i++)

{

if(0==i) histCDF[i] = histPDF[i];

elsehistCDF[i] = histCDF[i-1] + histPDF[i];

}

//直方图均衡化,映射

inthistEQU[256] = {0};

for(i=0; i<256; i++)

{

histEQU[i] = (int)(255.0* histCDF[i] +0.5);

}

for(i=0; i

{

for(j=0; j

{

temp = data[i*step+j];

data[i*step+j] = histEQU[temp];

}

}

cvNamedWindow("demo", CV_WINDOW_AUTOSIZE);

cvShowImage("demo", img);

cvWaitKey(0);

cvDestroyWindow("demo");

cvReleaseImage(&img);

return0;

}

5、线性变换

y=a*x+b的方式,其中x表示原图,y表示输出图像。

a=1,b=0,y和x相同

a>1对比度增强,a<1对比度减弱

b>0亮度增强,b<0亮度减弱

6、亮度、饱和度调整

https://blog.csdn.net/mao0514/article/details/47041099

通常在RGB色彩空间调整亮度与饱和度不是很直观,而HSL彩色空可以很直观表示出

每个像素的饱和度与亮度。所以首先读取图像的像素RGB值然后再转换到HSL空间得

到饱和度与亮度值,调整以后再从HSL空间转换到RGB空间的RGB值,对每个像素完

成这样的调整就完成图像的亮度与饱和度调整。

关于RGB与HSL色彩空间的转换

代码:http://lib.csdn.net/article/css3/52059

转换公式:

7、一种计算图像曝光度(Exposure)的方法

https://blog.csdn.net/grafx/article/details/45619731

下面是基于opencv的相关代码示例,strength范围可以设置为-2.0到2.0:

// strength范围[-2.0, 2.0]

int row = inputImg.rows;

int step = inputImg.step;

uchar* pInputImg = inputImg.data;

uchar* pOutputImg = outputImg.data;

for (int i = 0; i < row * step; i++)

{

pOutputImg[i] = (uchar)min_uchar(255, max_uchar(0, pInputImg[i] * pow(2, strength)));

}

相关文章

  • 图像预处理流程

    图像预处理主要包括去噪、对比度增强,去噪和对比度增强方法顺序不唯一,根据实际情况作出最好的安排。 1、灰度化 ht...

  • tflite模型推理

    模型输入的预处理 这个预处理其实就是模型训练阶段的预处理流程,和它对齐就好,特征工程常见的一些预处理包括了: 图像...

  • 图像预处理流程与方法

    图像分析中,图像质量的好坏直接影响识别算法的设计与效果的精度,因此在图像分析(特征提取、分割、匹配和识别等)前,需...

  • 信贷风控的基础:评分卡,iv,woe,vif

    流程 数据分箱 Bining 就是数据分组,数据预处理技术,如果是学图像算法的工程师,图像的分割就是一种数据分箱技...

  • 全景拼接笔记(基本流程)

    全景拼接基本流程 全景拼接主要有七个关键处理过程组成: 1.输入图像预处理2.图像配准3.图像定位4.捆绑调整5....

  • 2、机器学习系统搭建流程

    一、机器学习系统搭建流程 原始数据文本图像语音 数据预处理 特征工程 (向量/矩阵) 建模 预测 备注: 机器学习...

  • 人脸识别支付在城市公交领域应用存在的问题

    人脸识别技术的主要流程包括人脸图像采集、人脸检测、预处理、人脸特征点提取和人脸匹配/识别等几个环节,基于此,人脸...

  • 图像预处理

    像素亮度变换 亮度校正 灰度级变换 直方图均衡化 对数的灰度级变化 伪彩色 几何变换 像素坐标变换 双线性变换 仿...

  • pytorch中图像数据集的读取和预处理

    参考链接: 图像读取:https://zhuanlan.zhihu.com/p/27434001 图像预处理:ht...

  • 数据科学和人工智能技术笔记 四、图像预处理

    四、图像预处理 作者:Chris Albon译者:飞龙协议:CC BY-NC-SA 4.0 图像二值化 图像模糊 ...

网友评论

      本文标题:图像预处理流程

      本文链接:https://www.haomeiwen.com/subject/xilliftx.html