![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理基础
zyzhangyue
这个作者很懒,什么都没留下…
展开
-
GaussFilter
void framecj_GaussFilter(){int i, j, k;int data, step, now, temp;data = 0;step = framecj_ImgWidth * 3;for (i = 0; i now = data;for (j = 0; j if (i framecj_ImgHeight - 2 || j > frame原创 2015-05-16 20:25:19 · 684 阅读 · 0 评论 -
高斯滤波
高斯滤波是一种线性平滑滤波,适用于滤除高斯白噪声,已广泛应用于图像处理的预处理阶段。按照本人的理解,对图像进行高斯滤波就是对图像中的每个点的像素值计算,计算的准则是,由该点本身灰度值以及其邻域内的其他像素灰度值加权平均所得,而加权平均的权系数由二维离散高斯函数采样并归一化后所得。void GuassFilter(CvMat *pGrayMat, CvMat* pFilterMat, int原创 2015-05-19 22:11:31 · 680 阅读 · 0 评论 -
均值滤波
均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y),即g(x,y)=1/m ∑f(x,y), m为该模板中包含当前像素在内的像素总个数。这样的方法可以平滑图像,速度原创 2015-05-19 22:12:23 · 1714 阅读 · 0 评论 -
Canny
Canny算子求边缘点具体算法步骤如下:1. 用高斯滤波器平滑图像.2. 用一阶偏导有限差分计算梯度幅值和方向.3. 对梯度幅值进行非极大值抑制 .4. 用双阈值算法检测和连接边缘// 一维高斯分布函数,用于平滑函数中生成的高斯滤波系数 void CreatGauss(double sigma, double **pdKernel, int *pnWidowSi转载 2015-05-19 20:51:05 · 358 阅读 · 0 评论 -
基于直方图的图像全局二值化算法原理、实现--基于谷底最小值的阈值
1、描述: 此方法实用于具有明显双峰直方图的图像,其寻找双峰的谷底作为阈值,但是该方法不一定能获得阈值,对于那些具有平坦的直方图或单峰图像,该方法不合适。 2、实现过程: 该函数的实现是一个迭代的过程,每次处理前对直方图数据进行判断,看其是否已经是一个双峰的直方图,如果不是,则对直方图数据进行半径为1(窗口大小为3)的平滑,如果迭代了一定的数量比如1000次后仍未获得转载 2015-05-19 09:21:21 · 3718 阅读 · 2 评论 -
基于直方图的图像全局二值化算法原理、实现--迭代最佳阈值
1、描述: 该算法先假定一个阈值,然后计算在该阈值下的前景和背景的中心值,当前景和背景中心值得平均值和假定的阈值相同时,则迭代中止,并以此值为阈值进行二值化。2、实现过程: (1)求出图象的最大灰度值和最小灰度值,分别记为gl和gu,令初始阈值为: (2) 根据阈值T0将图象分割为前景和背景,转载 2015-05-19 10:01:52 · 4669 阅读 · 0 评论 -
基于直方图的图像全局二值化算法原理、实现--百分比阈值(P-Tile)
//HistGram灰度图像的直方图 //Tile背景在图像中所占的面积百分比 int GetPTileThreshold(int* HistGram, int Tile) { int Y, Amount = 0, Sum = 0; for (Y = 0; Y 256; Y++) Amount += HistGram[Y]; //原创 2015-05-19 09:16:49 · 2295 阅读 · 0 评论 -
基于直方图的图像全局二值化算法原理、实现--一维最大熵
1、描述: 该算法把信息论中熵的概念引入到图像中,通过计算阈值分割后两部分熵的和来判断阈值是否为最佳阈值。 2、算法原理 3、参考代码: int Get1DMaxEntropyThreshold(int* HistGram) { int X, Y,Amount=0; double* HistGra转载 2015-05-19 10:08:54 · 1447 阅读 · 1 评论 -
双边滤波
双边滤波是一种可以保边去噪的滤波器。之所以可以达到这样的效果,是因为该滤波器是由两个函数构成,一个函数是由几何空间距离决定滤波器系数,另外一个由像素差决定滤波器系数。 在前面几种讲述的滤波方法中,像素点的灰度值均是由该点邻域内其他点的灰度值决定的,比如高斯滤波和均值滤波都可看作是加权平均,中值滤波取的是邻域灰度中值。双边滤波则不但考虑邻域范围内点的灰度值,同样考虑这些点距离中心点的原创 2015-05-19 22:15:58 · 891 阅读 · 1 评论 -
基于直方图的图像全局二值化算法原理、实现--基于双峰平均值的阈值
1、描述: 该算法和基于谷底最小值的阈值方法类似,只是最后一步不是取得双峰之间的谷底值,而是取双峰的平均值作为阈值。2、参考代码:int GetIntermodesThreshold(int* HistGram) { int Y, Iter = 0, Index; double* HistGramC = new double转载 2015-05-19 09:56:49 · 5415 阅读 · 1 评论 -
SIFT和SURF特征提取分析(小结篇)
引言本节主要是David Lowe对于SIFT算法的阐述Distinctive Image Features from Scale-Invariant Keypoints和Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool, 对于SURF算法的阐述以及小结。SIFT特征提取小结根据LOWE的文章(更为SIFT特征提取分析,请转载 2015-05-18 21:05:24 · 2847 阅读 · 0 评论 -
中值滤波
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。其实现过程为: 1)通过从图像中的某个采样窗口取出奇数个数据进行排序 2)用排序后的中值作为当前像素点的灰度值 在图像处理中,中值滤波常用来保护边缘信息,是经典的平滑噪声的方法,该方法法对消除椒盐噪音非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作原创 2015-05-19 22:15:44 · 1496 阅读 · 0 评论 -
Harris角点检测
//定义模板运算函数//im:输入图像 tp:模板参数double * mbys(double * im,int imW,intimH,double *tp,int tpW,int tpH){ double* out=new double[imW*imH]; memset(out,0, imW*imH*sizeof(double));原创 2015-05-19 19:23:48 · 470 阅读 · 0 评论 -
数字图像处理词汇表
Algebraicoperation 代数运算;一种图像处理运算,包括两幅图像对应像素的和、差、积、商。Aliasing 走样(混叠);当图像像素间距和图像细节相比太大时产生的一种人工痕迹。Arc 弧;图的一部分;表示一曲线一段的相连的像素集合。Binary image 二值图像;只有两级灰度的数字图像(通常为0和1,黑和白)Blur 模糊;由于散焦、低通滤波、摄像机运动等引起的图转载 2015-05-16 21:59:30 · 749 阅读 · 0 评论 -
rgb转yuv420,yuv420转rgb
//////////////////////////////////////////////////////////////////////////// rgb转yuv420//////////////////////////////////////////////////////////////////////////bool RGB2YUV(LPBYTE RgbBuf,UINT原创 2015-05-16 20:13:33 · 2050 阅读 · 0 评论 -
二维卷积的基本原理
void Conv2(int** filter, int** arr, int** res, int filterW, int filterH, int arrW, int arrH){ int temp; for (int i=0; i { for (int j=0; j { temp = 0; for (int m=0; m { f转载 2015-05-20 20:18:38 · 1236 阅读 · 0 评论 -
高效率的YUV转RGB的OnPaint操作
class CROIDialog : public CDialogEx{DECLARE_DYNAMIC(CROIDialog)public:CROIDialog(CWnd* pParent = NULL); // 标准构造函数virtual ~CROIDialog();CStatic m_StaticDisplay;CRect m_rDrawingSur原创 2015-05-16 19:50:04 · 299 阅读 · 0 评论 -
图像腐蚀
二值图像上的腐蚀是腐蚀最典型的运用,但是腐蚀操作同样可以运用于灰度图像。二值图像腐蚀操作最基本的效果是腐蚀图像中前景色区域的边缘。使得前景图像区域变小,前景图像内部的背景区域被放大。 Bool IMG_erode(Uint8 * pImg,Uint32 w,Uint32 h, Uint8 * pMatrix,Uint32 col,Uint32 raw){Uint32 i,j,原创 2015-05-17 19:18:10 · 1051 阅读 · 0 评论 -
腐蚀膨胀
腐蚀操作描述为:扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作:如果都为1,结果图像的该像素为1,否则为0。膨胀操作描述为:扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作:如果都为0,结果图像的该像素为0,否则为1。以上都是关于二值图像的形态学操作,对于灰度图像:腐蚀操作其中,g(x,y)为腐蚀后的灰度图像,f(x,y原创 2015-05-17 19:48:41 · 431 阅读 · 0 评论 -
直方图的反向投影
1.反向投影的作用是什么? 反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。2.反向投影如何查找(工作)? 查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。 假设我们有一张100x100的输入图像,有一张10转载 2015-05-18 20:59:34 · 575 阅读 · 0 评论 -
混合高斯模型
高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以以为是图像灰度概率密度的估计。 如果图像所包含的目标区域和背景区域相差比较大,且背景区域和目标区域在灰度上有一定的差异,那转载 2015-05-18 21:17:35 · 964 阅读 · 0 评论 -
基于直方图的图像全局二值化算法原理、实现--灰度平局值值法
图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。 一:灰度平局值值法: 1、描述:即使用整幅图像的灰度平均值作为二值化的阈值,一般该方法可作为其他方法的初始猜想值。 2、原理: 3、实现代码: int原创 2015-05-19 09:12:57 · 1389 阅读 · 0 评论 -
基于直方图的图像全局二值化算法原理、实现--OSTU大律法
1、描述: 主要是思想是取某个阈值,使得前景和背景两类的类间方差最大,matlab中的graythresh即是以该算法为原理执行的。2、参考代码:int GetOSTUThreshold(int* HistGram) { int X, Y, Amount = 0; int PixelBack = 0, PixelFore =转载 2015-05-19 10:05:23 · 5736 阅读 · 1 评论