array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 paper 106:图像增强方面的介绍 - 爱码网

 图像增强是从像素到像素的操作,是以预定的方式改变图像的灰度直方图。有时又称为对比度增强,灰度变换。点运算不可能改变图像内的空间关系,输出像素的灰度值由输入像素的值决定。其作用:

    对比度增强:扩展感兴趣特征的对比度。

    光度学标定:去掉图像传感器的非线性影响。所谓光度学,就是在可见光波段内,考虑到人眼的主观因素后的相应计量学科称为光度学。标定即计算内参,在光度学范畴计算内参。

    显示标定:克服图像保存和显示过程中的非线性因数。

    轮廓线:进行阈值化

    裁剪:输出灰度级裁剪到0~255之间。

首先,解释下什么是对比度:

通俗的讲,就是明暗的对比程度,通常表现了图像画质的清晰程度,计算公式:
paper 106:图像增强方面的介绍
 
例如:
设图像L = {1 3 9 9
          2 1 3 7
          3 6 0 6
        }
则C = [(1^2 + 2^2) + (2^2 + 6^2 + 2^2) + (。。。。。) +。。。]/ 48 = 16.6818。
 
 
实际上,对比度反映了一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小,差异范围越大代表对比越大,差异范围越小代表对比
 
越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。但对比率遭受和亮度相同的困境,现今尚无一套有效又公正的标准来
衡量对比率,所以最好的辨识方式还是依靠使用者眼睛。

 

灰度变换(图像增强)的目的是为了改善画质,使图像的显示效果更加清晰。主要包含:

线性对比度展宽

对比度展宽的目的是将人所关心的部分强调出来。其原理是:进行像素级的点对点的灰度级映射。如下:

paper 106:图像增强方面的介绍

 

f(i,j)表示原图,g(i,j)表示处理后的图,要求g,f都在[0,255]区间变化,且g的效果要优于f.则该映射关系的计算公式为:
在 [0,a)区间,g(i, j) = α * f(i,j);
在[a, b)区间,g(i,j) = β * (f(i,j) - a) + ga;
在[b, 255)区间,g(i,j) = γ*(f(i,j) - b) + gb;
以上,α,β,γ都是斜率。这个就叫对比度展宽。
此时,如果我们只显示指定区间的g,即α,γ都设为0.g(i,j) = β1 *(f(i,j) - a) ; 则上面的映射变成:
paper 106:图像增强方面的介绍
这个过程叫做灰度窗切片,得到灰级窗。即只显示指定灰级范围内的信息。将灰度值落在一定范围内的目标进行对比增强。
我们将所需要检测的目标与画面中的其他部分分离开,目标部分置为0/255,非目标部分置为255/0,即α,γ置0的过程,这个叫灰度窗切片。
对比度展宽的效果:
paper 106:图像增强方面的介绍
动态范围调整
动态范围,是指图像中所记录的场景中从暗到亮的变化范围,由于人眼所可以分辨的灰度的变化范围是有限的,所以当动态范围太大时,很高的亮度值把暗区的信号都掩盖了。
通过动态范围的压缩,可以将所关心部分的灰度级的变化范围扩大。
 
对于动态范围的调整分为:
1.线性动态范围调整。
这个过程就是上面的对比度展宽后,通过灰度窗切片,得到灰级窗的过程。此时,灰级窗内的计算公式为:
g = 255/(b - a) *(f(i,j) - a);
 
线性动态范围调整的效果:
 
paper 106:图像增强方面的介绍
 
2.非线性动态范围调整:
因为人眼对信号的处理是有个近似对数算子的环节,因此,通常用取对数的方法。
g(i,j) = c * log10(1 + f(i,j)),其中,c表示你需要抑制的灰度上限。
 
paper 106:图像增强方面的介绍
 
 
 
例如,我们需要将暗的部分扩展,而将亮的部分抑制,此时,g(i,j) = 255 * log(f(i,j) + 1);
 
非线性动态范围调整的其他方法:这里根据中间范围的灰度级的运算进行分类。
1.增加中间范围灰度级而只使暗/亮像素做较小改变。公式:f(x) = x + Cx(Dm - x),其中,Dm是灰度级的最大值,C定义了中间灰度范围内的增加(c> 0)或者减小(c < 0),给
个demo:
paper 106:图像增强方面的介绍
 
 
2.降低较亮或较暗物体的对比度来增强灰度级处于中间范围的物体对比度,中间斜率大于1,而两端斜率小于1。
paper 106:图像增强方面的介绍
α:(0,1);

 

对应灰度:

 

paper 106:图像增强方面的介绍

3.压低在中间灰度级处的对比度,而在较亮或较暗部分的对比度增强,中间斜率小于1,两端大于1.

paper 106:图像增强方面的介绍
 
曲线与2类相反,第2类和第3类一起给个demo:
paper 106:图像增强方面的介绍
非线性动态范围调整效果:
paper 106:图像增强方面的介绍
直方图均衡化处理
直方图均衡法的思想是,对在图像中像素个数较多的灰度级进行展宽,而对像素个数较少的灰度级进行缩减,从而达到清晰图像的目的。
其数学原理实际就是从一个分布(输入的亮度直方图)被映射到另一个分布(一个更宽,理想统一的亮度值分布),也就是映射函数应该是一个累积分布。可以用累积分布函数对原始分布进行映射作为均衡拉伸分布。
原理:
经过点运算使一输入图像转换成在每一灰度级上都有相同的像素点数的输出图像(输出的直方图是平的),这对于在进行图像分割或分割之前将图像转换为一致的格式将是非常
有用的。经过均衡化后,每一级的像素个数为A0/Dm,Dm是灰度级的最大灰度值,A0是图像的面积。
均衡化方法:
1.求出原图的直方图,h = {x0,...xi}i 在0~255范围内。
2.计算灰度分布概率,图像总体像素N = l * w,每个灰度级的像素个数在整个图像中所占的百分比。hs(i) = h(i) /N (i 在 0~255)。
3.计算灰度级的累计分布hp:
paper 106:图像增强方面的介绍
4.计算新图像的灰度值。
paper 106:图像增强方面的介绍
直方图均衡化效果:
paper 106:图像增强方面的介绍
伪彩色技术
由于人眼识别不同彩色的能力比分辨不同灰度级的能力强,因此,把人眼无法区别的灰度变化,施以不同的彩色来提高识别率,这便是伪彩色增强的基本依据。
鉴于灰度图像要生成一幅彩色图像是一个一到三的映射,显然少信息量获得多信息量必然基于估计原理,也就是说,对未知的部分,通过各种手段进行合理的估计,研究的目的
不同,则估计的方法也不同,有以下几种方法:
1.基于亮度表示的伪彩色方法:
依照对温度的描述方式,当温度较低,我们会想到蓝色,又称冷色调,当温度较高,我们会想到红色,又称为暖色调,根据人感官上的这一特性,将亮度低的映射为蓝色,亮度
高的映射为红色。由此,可以按照如下映射关系进行伪彩色处理:
paper 106:图像增强方面的介绍
 
2.基于区域表示的伪彩色方法:
该伪彩色技术是对原图进行了预处理,将识别出属于不同性质的区域给不同的色彩。主要用于医学诊断,目的是突出病灶。

相关文章:

  • 2021-07-23
  • 2020-02-05
  • 2021-09-12
  • 2021-12-20
  • 2018-11-04
  • 2021-01-14
  • 2019-08-26
  • 2021-08-01
猜你喜欢
  • 2021-12-15
  • 2021-08-06
  • 2021-11-28
  • 2021-07-26
  • 2018-04-01
  • 2021-08-06
  • 2020-07-26
  • 2021-08-14
相关资源
相似解决方案