本文详细介绍了多种图像处理技术,包括RG/GB单通道提取、亮度和对比度调整、图像反转、均值滤波、高斯滤波、图像锐化、中值滤波、阈值分割、边缘检测(Sobel算子)、图像膨胀与腐蚀、开运算与闭运算、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种算法都提供了实现方法和相关公式,涵盖了图像处理的核心概念和技术。
1、RG/GB单通道提取,采用2x2阵列
其实现方法,用ram缓存两行图像数据,对缓存的数据进行间隔4个数据读取,以此一个固定的数据替换其余三个颜色值
2、亮度增加
其公式为:
Q = a * i + b
其中i为输入原像素值,a为调节对比度,b为调节亮度
实现方法为:只需将原像素值加上需要增加亮度的值即可(注:不要溢出)
3、对比度增加
其公式为:
Q = a * i +b
其中i为输入原像素值,a为调节对比度,b为调节亮度
实现方法:只需将原像素值乘上对比度值即可(注:不要溢出)
4、图像反转
其公式为:
Q = 255 - i;
其中i为原像素值
实现方法:将图像值的最大值减去原像素值
5、均值滤波
采用的3x3矩阵,先缓存三行图像数据,在对数据进行相加,取均值
其除法部分可以转化移位运算:
实现过程:
1024 / 9 = 113;
则可以让其矩阵取和值乘以113,在进行右移10位,则得出需要均值
6、高斯滤波
实现方法:
对所有的权值乘以1024,在将权值与矩阵像素相乘并累加和,并在按照1024\9=113的原理,让其和乘以113,在对其值进行右移20位,则该值就是要求的最终值
7、图像锐化
图像锐化,采用的是拉普拉斯算子,其算子模板如下:
采用第二个算子模板,其实现方法如下:
其实现方法:将算子模块中的值分成两部分,一部分是正值,另一部分是负值, 1、在将正值和负值进行比较,如果正值大于负值,则正值减去负值,在与p(4)像素加
2、在将正值和负值进行比较,如果正值小于负值,则负值减去正值,在p(4)像素值减去该值
8、中值滤波
其模型如下:
其实现方法:
设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为4的,就代表其值为中间值
9、阈值分割
其公式如下:
设置阀值区间,当在这个阀值区间内,则该像素值转化为0输出,不在这个阀值区间内的像素则输出255或其他定义的值
10、边缘检测(sobel)
其sobel算子3x3模型如下:
公式部分补充:
得到gxy值后,根据设置的阀值,当大于该阀值,则该像素输出为16’01,否则为8’hff,将像素二值化
其实现过程:
1、将模板Gx分为正值和负值累加,当正值大于负值时,则正值减去负值,否则是负值减去正值
2、同理模板Gy也是如此,然后在得出的值分别进行平方,在进行累加求和
3、最后对该值进行开平方(开平方可用cordic算法转化sqrt,也可以调用ip核)
4、得到开平方的值进行与阀值比较,将像素二值化
11、图像膨胀
在sobel检测之下,其公式:
求像素的最大值,进行输出
其矩阵模型为3x3
实现方法:
设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为8的,就代表其值为最大值
12、图像腐蚀
在sobel检测之下,其公式为:
求像素的最大值,进行输出
其矩阵模型为3x3
实现方法:
设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为0的,就代表其值为最小值
13、开运算
其原理过程是先腐蚀后膨胀的过程,其公式:
其实现过程:
在矩阵3x3中: