首页 > 其他分享 >图像增强

图像增强

时间:2023-04-09 18:03:14浏览次数:37  
标签:边界 灰度级 邻域 像素 直方图 图像 图像增强

两类图像增强方法

空域:直接对像素操作

频域:傅里叶变换,小波变换

空域

图像灰度级分布特点

对比度越高,灰度级在空间内分布更加均匀。

 

直方图均衡化

计算步骤

原始图像直方图 -> 累积概率分布直方图 -> 均值化后的直方图

核心:将累积概率分布的值 以为总灰度级个数对其进行近似划分,然后计算落在每个灰度级的原始灰度级概率分布总和。

计算灰度级概率分布

参数说明

rk:灰度级k的像素

Pr(rk):灰度级为k的像素出现概率

  

计算灰度级累积概率分布,并按照灰度级总数切分,近似

计算每个灰度级出现的累积概率,以一定精度将其进行舍去,将累积概率相同的出现概率相加,得到均值后的直方图。

  

由于灰度级是离散的,故采用离散形式

  

按照灰度级累积概率分布进行映射

         以灰度级累积概率分布的值为灰度级,将原始灰度映射到该灰度级。

         一共有8个灰度级,0,1,2,3,4,5,6,7。

灰度级0=0;灰度级1=s0=0.19;灰度级2=0;灰度级3=s1=0.25;灰度级4=0;灰度级5=s2=0.21;灰度级6=s3+s4=0.24;灰度级7=s5+s6+s7=0.11

简并现象

处理后的灰度级总是要减少的,称为简并现象。因为数字图像的直方图均衡只是近似结果。

解决方法

增加像素的比特数,如原8bit变成12bit

灰度间隔放大理论的直方图修正法也可以避免简并

对应Opencv函数

直方图统计

hist = cv2.calcHist(images, channels, mask, histSize, ranges, accumulate)

        • mages : 原始图像
        • channels : 指定通道
          • 通道编号需要用中括号括起来
          • 输入图像是灰度图时,它的值为[0]
          • 彩色图像可以使[0],[1],[2]分别对应通道B,G,R。
        • mask : 掩码图像
          • 统计整幅图像的直方图,设为None。
          • 统计图像某一部分的直方图时,需要掩码图像
          • 生成掩码图像
        • histSize : BINS的数量
        • ranges : 像素值返回RANGE
          • 像素值范围,例如:[0, 255]
        • accumulate : 累计标识
          • 默认值为false,如果被设置为true,则直方图在开始分配时不会被清零
          • 该参数允许从多个对象中计算单个直方图,或者用户实施更新直方图
          • 多个直方图的累计结果,用户对一组图像计算直方图

直方图均衡

dst = cv2.equalizeHist(src[, dst])

        • src 单通道 8-bit 的图像
        • dst 与输入图像大小相同的输出图像

 

直方图匹配

作用

将直方图转换为任意指定的形状

步骤

1.输入图像均值化。

2.目标直方图均值化。

3.联系两张直方图。

因为两个中间图像都具有相似的直方图均衡,所有实际上它们是相同的图像,所有y=y'

点处理

点处理是将单个像素点根据其自身数值会周围像素点进行处理。

s=T(r),r是原始像素数值输入,T是点处理函数,s是经过处理之后的像素点数值。

负片变换:s=1-r

阈值处理:大于阈值设置为1,小于阈值设置为0

 

强度变换

对数变换

数学公式

s= c * log(1+r)

c是常数。

作用

log变换可以将狭窄的低的输入灰度级映射到更加宽广的输出范围。

反对数变换则相反。

 

幂律变换

数学公式

s = c * rγ

γ决定曲线的弯曲程度,γ以1为边界,越趋向于0,曲线越飘,越趋向于无穷大,越往下弯曲。

幂律变换的应用

伽马矫正

显示设备无法线性地反应不同的强度,通常呈现曲线

可以使用幂律变换对其矫正

 

分段线性变换

数学公式

对于不同灰度级区间,使用不同的函数

灰度切片

处理方式

只输出某个特定灰度级的像素。

作用

用于突出某些特征。

将某个灰度区间的像素值变高。

比特平面分层

一副灰度图,一个像素点由8bit组成,可考虑分层1到8个比特面。

一般来说高阶,特别是最后两个比特平面,比特包含了视觉上很重要的大多数数据。

图像合并

图像平均

其中fi是第i张图片,fi=g+ni,第i中图片有原图g加上噪声ni得到。

图像相减

可以突出两个图像之间的差异。可以快速找出两个图像的不同之处

空域滤波器

邻域操作

在一个像素点周围的邻域上操作,而不是单个点。一半来说是方形邻域

g(x,y)是处理后的像素,w(s,t)是周围邻域各个像素点的权重。f(x+s,y+t)是f(x,y)的邻域像素

简单邻域操作

Min:邻域中最小像素值填充像素。

Max:邻域中最大像素值填充像素。

Median:邻域平均像素值填充像素。

常见滤波器

均值滤波器

卷积核都是:1/邻域像素总数。也就是中间像素取邻域像素的平均值

可以使得图像更加平滑,但是会丢失细节。

均值滤波起到平滑作用,对椒盐噪声非常差。

带权重平滑滤波器

越接近中间像素,权重越高。卷积核随着移动而改变。

中值滤波

中间点像素取邻域像素的中值。

中值滤波对椒盐噪声有较好的效果。

滤波器的边界丢失问题

产生原因

应为滤波器也是一个nxn大小的方格,若与图像边界对齐,则处理的时候,无法处理边界的像素,导致边界像素丢失。

3x3卷积核会丢失1圈边界像素,5x5会丢失2圈边界像素,7x7会丢失3圈边界像素,9x9会丢失4圈边界像素,nxn会丢失 (n/2)向下取整 圈边界像素

解决方法

忽略缺失的像素

填充图像

复制边界像素

裁剪图像

锐化空间滤波器

作用

可以去除图像中的模糊。

突出边界。

衡量像素变化的方法

使用一阶导数

缺陷:当前像素只与前一个像素比较。

 

使用二阶导数

拉普拉斯算子

优点

各向同性

简单

使用拉普拉斯算子处理的图像 与 原图相加 可以将原图边界突出,实现锐化。

具体公式


简化图像增强

拉普拉斯算子变体

优点:不仅考虑四上下左右,还考虑了对角线,对边界突出效果更明显。

一阶导数变化滤波器(Sober算子)

衡量x方向和y方向上的变化

梯度

使用梯度作为衡量像素变化标准

在实际应用中,可以简化为

Gx表示的是上下方向的变化

Gy表示的是左右方向的变化。

Gx=(z7+2z8+z9)-(z1+2z2+z3)

Gy=(z3+2z6+z9)-(z1+2z4+z7)

一阶导数与二阶导数比较

1阶导数产生的边缘更2阶导数算子产生的细节更多。

1阶导数对灰度阶梯反应更强2阶导数反应的是变化后的起伏,变化幅度不一致才有响应,对灰度变化强烈的地方很敏感。

 

 

 

标签:边界,灰度级,邻域,像素,直方图,图像,图像增强
From: https://www.cnblogs.com/RedNoseBo/p/17300653.html

相关文章