图像处理 --- 灰度变换和空间滤波

图像处理方法

前提:了解图像是由矩阵构成,也可以看成一个数组

-1->空间域图像处理(直接操作图像中的元素也就是操作 矩阵或者数组中的元素

-2->变换域图像处理(经过一系列变换 ,又会回到空间域处理)

-1->空间域图像处理方式主要分为两种

  1. 灰度变换
  2. 空间滤波

灰度变换:是对图像中单个像素进行处理 主要是以对比度或者阈值处理为目的

1.几种常见的灰度变换

图像反转(m行n列)  *pdata是原图像,8位图像是灰度图像

图像处理 --- 灰度变换和空间滤波_第1张图片

for(int  row=0; row

{

   for(int  col=0; row

       *(pdata + row * n + col )=  255 -(*(pdata + row * n + col ))

}

图像处理 --- 灰度变换和空间滤波_第2张图片图像处理 --- 灰度变换和空间滤波_第3张图片

对数变换(注意看看 彩色图像 对数函数变化趋势方便我们 看看我们需要什么数值)

图像处理 --- 灰度变换和空间滤波_第4张图片

*(pdata + row * n + col )=  clog ( 1+ (*(pdata + row * n + col )))

图像处理 --- 灰度变换和空间滤波_第5张图片图像处理 --- 灰度变换和空间滤波_第6张图片

幂律变换(伽马变换)

s为目标像素 c为常数  r为元像素 y是正常数

图像处理 --- 灰度变换和空间滤波_第7张图片

    图像处理 --- 灰度变换和空间滤波_第8张图片图像处理 --- 灰度变换和空间滤波_第9张图片

分段线性变换

图像处理 --- 灰度变换和空间滤波_第10张图片图像处理 --- 灰度变换和空间滤波_第11张图片

if(*(pdata + row * n + col ) <150)          *(pdata + row * n + col ) = *(pdata + row * n + col ) -50

else if (  150 <  *(pdata + row * n + col ) < 180  )        *(pdata + row * n + col )= 250

else  *(pdata + row * n + col )= *(pdata + row * n + col )  根据不同需求 进行处理

 

2.直方图处理

https://blog.csdn.net/taoyanqi8932/article/details/52758376

是多种空间域处理的基础

图像处理 --- 灰度变换和空间滤波_第12张图片

简单介绍直方图步骤:

1.假定原图像大小7 *7  灰度0 ---16

for i (0 -> 16)

pdata[i] ++  得到每个灰度的个数

2.for i (1-> 16)

pdata_number[i] = pdata[i] + pdata[i -1 ]  得到 灰度累计个数pdata_number[0] = pdata[0]

3.灰度变换

for i( 0 -> 16)

pdata_number[i] * 16 / 总像素个数 转变成 int类型 就行了 

4.和原来图像进行一一对应变换 

空间滤波:是对图像中改善性能的操作

机理:通过利用空间滤波器(核, 掩模,模板)直接作用于图像本身 从而得到改善后的图像

https://blog.csdn.net/fate_fjh/article/details/52882134

(卷积之完美讲解)

 

均值滤波(一般平均,加权平均,几何均值滤波器,谐波均值滤波器,逆谐波均值滤波器 ,YpYp均值滤波器等等 )

一般平均就是 pdata[ 0->9] 10个像素值  加起来 除以10 然后就这个值付给原来10个像素就OK 

这个就是核心

均值滤波器能够去除均匀分布和高斯分布的噪声,但是在过滤掉噪声的同时,会对图像造成一定的模糊,使用的窗口越大,造成的模糊也就越明显

中值滤波(一般中值滤波,十字等等)

一般平均就是 pdata[ 0->9] 10个像素值  排序后 取得中间这个值 然后就这个值付给原来10个像素就OK 

它对于一定类型的随机噪声,它提供了一种优秀的去噪能力,它对处理脉冲噪声(椒盐噪声)非常有效

最大最小值滤波器

一般平均就是 pdata[ 0->9] 10个像素值  排序后 取得MAX 或者MIN 这个值 然后就这个值付给原来10个像素就OK 

用处 没接触过。。。。。

以上这些滤波器 如果想知道一些具体效果 网上到处可以看得到 代码建议自己写写看,很简单。这些滤波器一般作为平滑图像作用

以上的话使一些常用的平滑滤波器,下面一起来看看 锐化滤波器

 

锐化滤波,是将图像的低频部分减弱或去除,保留图像的高频部分,即图像的边缘信息。

图像的边缘、轮廓一般位于灰度突变的地方,也就是图像的高频部分,通常用灰度差分提取边缘轮廓

https://blog.csdn.net/u014030117/article/details/46383659

这边文章详细,加上简单代码就说明以下几个锐化算子

  • Roberts算子
  • Sobel算子
  • Prewitt算子
  • Laplace算子

 

 

 

 

 

你可能感兴趣的:(图像处理)