文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++Visual C++ 实现数字化图像的分割
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
热点TOP10
·进程和线程编程
·C语言编程易犯毛病集合
·打字游戏
·Awk 基础入门:Awk 实例编程
·asp.net中调用javascript函数实现多功能日期控件示例
·C语言编程常见问题解答之常用函数的包含文件(1)
·C# GridView 排序及分页
·C #中的几个线程同步对象方法
·无废话C#设计模式之三:Abstract Factory
·C# DataGridView隔行显示不同的颜色

Visual C++ 实现数字化图像的分割

日期:2007年12月28日 作者: 查看:[大字体 中字体 小字体]


}
}
//取最大方向的导数;
for(k=0;k<8;k++)
{
max=0;
if(max<sum[k])
max=sum[k];
}
if(max<0)
max=0;
if(max>255)
max=255;
*(pData1+ Width*8*i+j)=max;
}
memcpy(pData,pData1, Width*8*Height);
delete pData1;
return TRUE;
}

  另外还有一种称为拉普拉斯的算子是不依赖于边缘方向的二阶微分算子,其表示式Visual C++ 实现数字化图像的分割(图七) ,对于数字图像来说拉普拉斯算子可以简单表示为:G[I,j]=f[i+1,j]+f[i-1,j]+f(i,j+1)+f[i,j-1]-4f[i,j];它是一个标量而不是向量,具有旋转不变,既各向同性的性质,它常常用在图像处理的过程中。

  梯度算子和拉普拉斯算子对噪声敏感,它们都使噪声成份加强,因此在处理含有较大噪声的图像时,常常先对图像进行平滑操作,然后再进行二阶微分,这就产生了所谓的LOG(又称为Marr方法)边缘检测方法。它先用高斯函数对图像进行平滑,然后再用拉普拉斯算子进行运算。

  总的来说,传统的边缘检测算子的噪声平滑能力和边缘定位能力是矛盾的,为了克服这个不足,正确地得到图像的边缘信息,人们提出了很多方法,如多尺度空间滤波、Facet模型检测边缘、模板匹配、Hough变换、小波变换、人工神经网络、模糊推理等算法。但这些方法绝大多数没有经典的算法精简,要么难以获得合理的计算复杂度,要么需要人为的调节各种参数,有时甚至难以实时运行。因为传统边缘的定义为图像中灰度的突变,所以这样定义边缘既失去了边缘的部分信息,又把噪声的影响包含在了边缘中。其实,边缘往往具有以下特征:

  1)灰度突变;

  2)是不同区域的边界;

  3)具有方向性;

  根据边缘的这三个特征,可以判断所关心的区域其特征是否存在差异来判断是否存在边缘的可能性。如果特征没有差异,则认为是平滑区;如果特征有差异,则判断为边缘点。算法的具体实现步骤如下:

  1) 设置四个3x3模板如图三所示,显而易见,四个模板分别按0、45、90、135以(x,y)点为中心将3x3的区域分成两个部分,按照这四个模板分别对图像中的每一像素点进行卷积求和操作。

  2)对图像中每一像素点求的四个结果求绝对值,将每个结果分别与一个阈值比较,如果其中任意一结果大于或等于阈值T,则该模板的中心点所对应的图像像素点的灰度值为255,否则为0。

 Visual C++ 实现数字化图像的分割(图八)
图三 边缘提取模板

  对于有噪声的图像,由于噪声是随机分布的,因此不论(x,y)是有效边界点还是处于平坦区域内部,沿边缘方向划分的两个区域R1和R2的噪声分布和噪声强度,在概率上相同。从四个模板的结构可以看出,噪声的影响基本上被相应的抵消,不会对边缘提取产生太大的影响,因此该算法具有较好的抗噪能力,克服了传统的边界提取仅考虑灰度突变的情况的局限。经实验证明该方法有较强的抗噪声性能。为了更好的对比各种算法进行边缘检测的效果,我们对一幅汽车图像进行了处理,下图中的a、b、c、d是分别通过LOG算子、Sober算子、Kirsch算子和使用上述算法检测得到的边缘。

Visual C++ 实现数字化图像的分割(图九)
(a) 原始图像
Visual C++ 实现数字化图像的分割(图十)
(b)LOG算子
Visual C++ 实现数字化图像的分割(图十)
(c) Sober算子
Visual C++ 实现数字化图像的分割(图十二)
(d) Kirsch算子
Visual C++ 实现数字化图像的分割(图十三)
(e) 模板检测法
   图四 图像的边缘检测

  从上面的处理后的效果图来说,只有最后一种算法处理后肉眼看不出有噪声点,所以从去噪和提取边缘的综合效果来看,我们上述介绍的模板检测算法还是比较另人满意的。

Photoshop教程 数据结构 五笔输入法专题 QQ病毒专题 共享上网专题 Google工具和服务专题

  三、图像的二值化

上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 




上一篇:用Win32 API枚举应用程序窗口和进程

下一篇:C语言嵌入式系统编程修炼之内存操作

相关文章:
·如何实现局域网打印机共享
·Vista中硬盘分区合并分割全攻略
·水晶报表的jsp实现
·Coreldraw图像文件导入PS三种方法
·用Excel实现定时提醒
·利用VB6.0实现五线谱作曲工具
·Flash教程:加载图片按比例显示的实现方法
·VB实现程序的隐形
·一个只使用Winsock控件实现的Telnet程序
·C++ Builder下数据库报表Master/Detail关系功能的实现
相关软件:
·视频分割专家 V5.83
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·Video Convert Master(转换,分割,合并视频)V8.0.5.20 汉化版
·TCP-IP详解卷2:实现
·Allok Video Splitter(视频文件分割)V2.2 0726 修正II版
·Super Video Splitter(视频分割工具)绿色汉化版 V3.9
·PE(*.EXE,*.DLL,*.OCX等)文件图像资源浏览器
·绿色分割 V4.0
·TCP-IP详解卷二:实现
·Cisco 3640实现VOIP配置

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot