图像处理那些算法
Posted dlz456
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理那些算法相关的知识,希望对你有一定的参考价值。
图像的几何变换
1)旋转
借助矩阵运算来实现图像的旋转功能
2)平移
借助矩阵运算来实现图像的旋转功能
3)对称
借助矩阵运算来实现图像的对称功能
水平镜像变换:
垂直镜像变换:
图片裁剪
借助 get (gca, ‘currentPoint’)获取鼠标点击的位置,从而得到鼠标按下和松开的两个位置的坐标。
将这两个点的位置提取出来去截取图片。
消除噪声
均值滤波消除噪声:均值滤波属于线性滤波,它的实现原理是邻域平均法。实际上就是用取均值的方式替换原图像中的像素值,即选择一个大小为 M 模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,最后填充到输出图像中。
中值滤波消除噪声:中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
图像锐化
sobel 算子:Sobel 算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。
拉普拉斯算子:拉普拉斯算子是图像邻域内像素灰度差分计算的基础,通过二阶微分推导出的一种图像邻域增强算法。它的基本思想是当邻域的中心像素灰度低于它所在邻域内的其他像素的平均灰度时,此中心像素的灰度应该进一步降低;当高于时进一步提高中心像素的灰度,从而实现图像锐化处理。在算法实现过程中,通过对邻域中心像素的四方向或八方向求梯度,并将梯度和相加来判断中心像素灰度与邻域内其他像素灰度的关系,并用梯度运算的结果对像素灰度进行调整。
Prewitt 算子:Prewitt 算子是一种图像边缘检测的微分算子,其原理是利用特定区域内像素灰度值产生的差分实现边缘检测。由于 Prewitt 算子采用 33 模板对区域内的像素值进行计算,而 Robert 算子的模板为 22,故 Prewitt 算子的边缘检测结果在水平方向和垂直方向均比Robert 算子更加明显。
图片增强
亮度调整:将图片由 RGB 转化为 HSV,将图片的亮度信息 V 线性映射,映射完成后将图片转换为 RGB 类型的图像,达到通过滑动条来改变图片亮度的目的。
饱和度调整:将图片由 RGB 转化为 HSV,将图片的饱和度信息 S 线性映射,映射完成后将图片转换为 RGB 类型的图像,达到通过滑动条来改变图片饱和度的目的。
色调调整:将图片由 RGB 转化为 HSV,将图像的 H 色调信息加上一个 0-1 之间的小数,然后由于色调信息本身范围在 0-1 之间,因此将大于一的数减去 1。实现通过滑动条调整图片色调的功能。
对比度增强:将图片由 RGB 转化为 HSV,将图片的亮度信息均衡化,然后将 HSV 转换成RGB 达到增强图像对比度的功能。
图片分割
迭代法:主要思想是:图像分割后的两部分 A 和 B 的均值和基本保持稳定。也就是说,随着迭代的进行,取[mean(A)+mean(B)]/2 最终的收敛值作为分割阈值。
迭代算法:
Step1 选择一个初始阈值 T0;
Step2 根据阈值 T0 将图像分为 A 和 B 两部分。分别求出 A 和 B 的平均灰度值 A_average 和
B_average。
Step3 计算 T1= (A_average+B_average)/2 ,比较 abs(T1-T0)<1(或更小值),成立,则停止
迭代,此时的 T1 就是分割阈值;否则,将 T1 赋值给 T0(T0=T1),继续从第二步开始。
区域生长算法:区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区域就长成了。
区域生长需要选择一组能正确代表所需区域的种子像素,确定在生长过程中的相似性准则,制定让生长停止的条件或准则。相似性准则可以是灰度级、彩色、纹理、梯度等特性。选取的种子像素可以是单个像素,也可以是包含若干个像素的小区域。大部分区域生长准则使用图像的局部性质。生长准则可根据不同原则制定,而使用不同的生长准则会影响区域生长的过程。
区域生长法的优点是计算简单,对于较均匀的连通目标有较好的分割效果。它的缺点是需要人为确定种子点,对噪声敏感,可能导致区域内有空洞。另外,它是一种串行算法,当目标较大时,
分割速度较慢,因此在设计算法时,要尽量提高效率。
大津法 Otus 阈值分割:
大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。它被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特性,将图像分成背景和前景两部分。因方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
素描滤镜
通过对图像实现高斯模糊和图层混合方法实现,实现步骤如下:
Step1 读取图像,并对图像的灰度级归一化到[0 255]。
Step2 对原图进行反色得到图像 B。
Step3 对图像 B 进行高斯模糊得到图 C。
Step4 最后将图像 C 与图像 B 进行颜色减淡的图层混合算法得到最后处理效果,颜色减淡的公式
为:结果色 = 基色 + (混合色 * 基色) / (255 - 混合色)。
浮雕效果
对图像的每一个点进行如下滤波运算,就是对于坐标为(i,j)点,进行的计算为 dst(i,j)=src(i+1,j+1)
- src(i-1,j-1)+128,然后切剪到 0-255 之间。
油画滤镜
具体实现步骤如下:
Step1 首先根据量化位数将 0-255 划分为 q 个区间
Step2 然后根据滤波半径 r 拿到半径内的像素
Step3 统计像素在区间中出现的次数,找到次数最大的区间
Step4 计算次数最大区间所有像素平均值赋值给当前滤波像素即可。
漫画效果
具体处理方法如下:先将原有图像进行双边滤波,在保留边缘特征的同时对图像进行模糊处理;
接着通过 Sobel 算子对图像进行边缘检测,对图片边缘区域进行加重处理;最后再增强图像颜色
饱和度,达到漫画的效果。
特征测量
1) 矩形度:物体的面积和物体最小外接矩形的面积之比,体现物体对其外接矩形的充满程度
2) 重心:所有属于区域的点的平均值
3) 周长:区域和背景缝隙的长度之和
4) 球状度:圆心都在区域重心的内切圆与外接圆的半径之比
5) 圆形性:区域中心到轮廓点的平均距离与区域中心到轮廓点的距离方差之比
系统展示
以上是关于图像处理那些算法的主要内容,如果未能解决你的问题,请参考以下文章