吉安seo网站快速排名,做网站生意买螃蟹,自己做网站到哪里去接广告,文创产品设计大赛作品图像锐化主要影响图像中的低频分量#xff0c;不影响图像中的高频分量。 图像锐化的主要目的有两个#xff1a; 1.增强图像边缘#xff0c;使模糊的图像变得更加清晰#xff0c;颜色变得鲜明突出#xff0c;图像的质量有所改善#xff0c;产生更适合人眼观察和识别的图像… 图像锐化主要影响图像中的低频分量不影响图像中的高频分量。 图像锐化的主要目的有两个 1.增强图像边缘使模糊的图像变得更加清晰颜色变得鲜明突出图像的质量有所改善产生更适合人眼观察和识别的图像 2.希望通过锐化处理后目标物体的边缘鲜明以便于提取目标的边缘、对图像进行分割、目标区域识别、区域形状提取等进一步的图像理解与分析奠定基础。 图像锐化一般有两种方法 1.微分法 2.高通滤波法 这里主要介绍一下两种常用的微分锐化方法梯度锐化和拉普拉斯锐化。 注意由于锐化使噪声受到比信号还要强的增强所以要求锐化处理的图像有较高的信噪比否则锐化后的图像的信噪比更低。 1.梯度锐化 基本理论 邻域平均法或加权平均法可以平滑图像反过来利用对应的微分算法可以锐化图像。微分算法是求信号的变化率有加强高频分量胡作用从而使图像轮廓清晰。 由于图像模糊胡实质是图像受到平均或积分运算造成的所以为了把图像中任何方向伸展的边缘肯模糊的轮廓变得清晰可以对图像进行逆运算如微分运算从而使图像清晰化。 在图像处理中一阶微分是通过梯度算法来实现的对于一幅图像用函数f(x,y)表示定义在f(x,y)在点(x,y)处的梯度是一个矢量定义为 梯度的方向在函数f(x,y)最大变化率的方向上梯度的幅度G[f(x,y)]可以由以下公式算出 由上式可知梯度的数值就是f(x,y)在其最大变化率方向上的单位距离所增加的量。 对于数字图像而言微分可用差分来近似。因此上式可以写成 为了便于编程和提高运算速度在计算精度允许的情况下可采用绝对差算法近似为 这种算法又称为水平垂直差分法另一种梯度算法是交叉的进行查分计算称为罗伯特梯度法表示为 同样可采用绝对差算法近似 运用上述两种梯度近似算法在图像的最后一行后最后一列无法计算像素的梯度时一般用前一行或前一列的梯度值近似代替。 为了不破坏图像背景的前提下更好地增强边缘也可以对上述直接用梯度值代替灰度值的方法进行改进可以引入一个阈值来判断是否对某一像素点进行锐化。具体公式如下 对于图像而言物体与物体之间背景与背景之间的梯度变化很小灰度变化较大的地方一般集中在图像的边缘上也就是物体和背景交接的地方。当我们设定一个阈值时G[f(i,j)]大于阈值就认为该像素点处于图像的边缘对结果加上常数C以使边缘变亮而对于G[f(i,j)]不大于阈值就认为该像素点为同类像素即同为物体或同为背景常数C的选取可以根据具体的图像特点。这样既增亮了图像的边界同时又保留了图像背景原来的状态比传统的梯度锐化具有更好的增强效果和适用性。 另外拉普拉斯算子也可用于图像锐化这里不再赘述。 算法实现 ****************************************************************************************************************************************** 红数字图像处理视频教程两部 {中科院版36讲视频教程 电子科大版70讲视频教程冈萨雷斯 第二版} 橙halcon软件、halcon软件手把手教破解视频教程 黄数字图像模式识别demoC编写在公司也是用C哦 绿halcon软件视频教程、halcon软件在vs2010中配置 青面向对象C视频教程 蓝MFC C视频教程 紫海量相关文档资料 http://item.taobao.com/item.htm?spma1z10.3.w4002-9510581636.11.VUYzOYid43025290175 ****************************************************************************************************************************************** /************************************************************************* * 函数名称 * GradSharp() * 参数: * BYTE bThre - 阈值 * 返回值: * BOOL - 成功返回TRUE否则返回FALSE。 * 说明: * 该函数用来对图像进行梯度锐化,设定梯度锐化的阈值为30 /************************************************************************/ void CImgEnhance::GradSharp(unsigned char Thre) { unsigned char* pSrc; // 指向源图像的指针 unsigned char* pDst; unsigned char* pSrc1; unsigned char* pSrc2; LONG i,j; // 循环变量 int bTemp; if(m_pImgDataOut ! NULL) { delete []m_pImgDataOut; m_pImgDataOut NULL; } if(m_nBitCount ! 8) { AfxMessageBox(只能处理8位灰度图像!); return ; } int lineByte (m_imgWidth * m_nBitCount / 8 3) / 4 * 4; //创建要复制的图像区域 m_nBitCountOut m_nBitCount; int lineByteOut lineByte; if (!m_pImgDataOut) { m_pImgDataOut new unsigned char[lineByteOut * m_imgHeight]; } int pixelByte m_nBitCountOut / 8; // 此处实际就是1因为只处理8位图像 for(i 0; i m_imgHeight; i) { for(j 0; j m_imgWidth * pixelByte; j) *(m_pImgDataOut i * lineByteOut j) *(m_pImgData i * lineByteOut j); } for(i 0; i m_imgHeight; i) // 每行 { for(j 0; j m_imgWidth; j) // 每列 { //指向新DIB第i行第j列的像素的指针 pDst m_pImgDataOut lineByte * i j; // 进行梯度运算 // 指向DIB第i行第j个象素的指针 pSrc (unsigned char*)m_pImgData lineByte * i j; // 指向DIB第i1行第j个象素的指针 pSrc1 (unsigned char*)m_pImgData lineByte * (i1) j; // 指向DIB第i行第j1个象素的指针 pSrc2 (unsigned char*)m_pImgData lineByte * i j 1; bTemp abs((*pSrc)-(*pSrc1)) abs((*pSrc)-(*pSrc2)); // 判断是否小于阈值 if ((bTemp120) 255) { // 判断是否大于阈值对于小于情况灰度值不变。 if (bTemp Thre) { *pSrc bTemp 120; } } else { *pSrc 255; } //生成新的DIB像素值 *pDst *pSrc; } } }