Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16497513
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:34:18

下载本文示例代码
  [引言]   数字图像处理主要在以下两个方面有着相当大的应用前景:1)数字信号通讯及模式识别。 2)数字图像的修饰及制作。   如果要说数字图像处理有什么吸引我们的,可以举这样的例子:比如,你可以把自己认为最漂亮的五个美女的头像储存进数据库中,由图像分析程序分析得到你心目中最漂亮的女生的图像;再如,以后的大门可以不需要使用钥匙,只要装一个摄像探头,它可以根据指纹,头像等人体特征,判定谁是它认可的房屋主人。所以,为了这么吸引人的目标,让我们一起努力吧:)   [原理]   数字图像处理的学科基础是统计学,高等数学,随机数学以及计算机图像学偏重颜色及视感方面的内容。许多数字图像的处理算法已经相当成熟,而且实现它们的难度并不算大,关键是找到对应的编程语言合适的像素操作函数即可。这里介绍最简单的一种数字图像处理方式---灰度图像的边缘提取。   在介绍边缘提取的主要内容前,先着重提一下灰度直方图对于数字图像处理的意义,灰度直方图就是对图像上各级灰度出现的次数进行统计,进行规一化处理之后,绘制出的以灰度值为横坐标,以灰度的频率值为纵坐标的图像。从灰度直方图上可以"读"出关于图像颜色分布的许多信息,是数字图像的第一步,很多的处理都以此为基础展开的。图1是待处理的著名的lena图像,而图2则是它的二维灰度直方图。而根据数字图像在每个像素点的灰度值的不同,可以做出以像素点横,纵值为x,y坐标值,以(x,y)点的灰度值为z坐标值的二维灰度值图,如图3所示,从二维灰度值图中,可以直观的了解到图像各像素点之间灰度变化情况。      图1:Lena原像 图2:Lena原像对应的灰度直方图      图3:Lena原像的二维灰度值图   好,下面转入边缘提取的正题。所谓边缘提取,就是将图像中各种人物及物品的边缘的刻画出来,而其它的非边缘区域则用边缘区域的对比色进行填充。让我们再把视线回到二维灰度值图上,很显然,如果把图像看成一个连续的曲面,那么在边缘处由于灰度值的剧烈变化,那么无疑,在边缘处像素点的导数(可以是关于x或y的一阶导数或关于x,y的二阶导数)必定要高过非边缘区域处的点。而由于我们的图像是一个个像素点组成的,所以,用离散化的点的刻画不仅更为直接,而且要比连续的曲面处理方便不少。这时,要做的只是将连续曲面上的导数进行离散化(将微分方程改写成差分方程)。在边缘提取里,将这样的离散化,称作"算子"。其中,基于一阶导数著名算子为普通一阶微分算子,Roberts及Sobel算子,基于二阶导数又称为拉普拉斯(Laplace)算子。这算子具体操作起来,其实就是将每个像素点四周的点进行相应的差分运算,实际表现为一个9个像素值(像素x,y及其周围的八个像素,图像四周上的像素作为非边缘点处理)和其对应系数的内积操作,得到的是关于像素点(x,y)的相应导数值,再设定好相应的阙值,即可显示出边缘提取的效果。具体的算子操作在数字图像的课本上都有详述,这里不再赘述。所以,真正进行边缘提取操作还是相当容易的,这容易还是赖于前人栽树的功劳啊。   [实验结果]   实现相对简单,具体实现代码请参考源码。   下面给出两组实验结果,看来,从视觉感受来说,一阶微分算子效果要好些,而二阶的边缘提取能将图像的更多细节变化提取出来,在进一步进行图像处理里,所得信息会更有用些。      图3:普通一阶微分算子 图4:拉普拉斯算子1   [引言]   数字图像处理主要在以下两个方面有着相当大的应用前景:1)数字信号通讯及模式识别。 2)数字图像的修饰及制作。   如果要说数字图像处理有什么吸引我们的,可以举这样的例子:比如,你可以把自己认为最漂亮的五个美女的头像储存进数据库中,由图像分析程序分析得到你心目中最漂亮的女生的图像;再如,以后的大门可以不需要使用钥匙,只要装一个摄像探头,它可以根据指纹,头像等人体特征,判定谁是它认可的房屋主人。所以,为了这么吸引人的目标,让我们一起努力吧:)   [原理]   数字图像处理的学科基础是统计学,高等数学,随机数学以及计算机图像学偏重颜色及视感方面的内容。许多数字图像的处理算法已经相当成熟,而且实现它们的难度并不算大,关键是找到对应的编程语言合适的像素操作函数即可。这里介绍最简单的一种数字图像处理方式---灰度图像的边缘提取。   在介绍边缘提取的主要内容前,先着重提一下灰度直方图对于数字图像处理的意义,灰度直方图就是对图像上各级灰度出现的次数进行统计,进行规一化处理之后,绘制出的以灰度值为横坐标,以灰度的频率值为纵坐标的图像。从灰度直方图上可以"读"出关于图像颜色分布的许多信息,是数字图像的第一步,很多的处理都以此为基础展开的。图1是待处理的著名的lena图像,而图2则是它的二维灰度直方图。而根据数字图像在每个像素点的灰度值的不同,可以做出以像素点横,纵值为x,y坐标值,以(x,y)点的灰度值为z坐标值的二维灰度值图,如图3所示,从二维灰度值图中,可以直观的了解到图像各像素点之间灰度变化情况。      图1:Lena原像 图2:Lena原像对应的灰度直方图      图3:Lena原像的二维灰度值图   好,下面转入边缘提取的正题。所谓边缘提取,就是将图像中各种人物及物品的边缘的刻画出来,而其它的非边缘区域则用边缘区域的对比色进行填充。让我们再把视线回到二维灰度值图上,很显然,如果把图像看成一个连续的曲面,那么在边缘处由于灰度值的剧烈变化,那么无疑,在边缘处像素点的导数(可以是关于x或y的一阶导数或关于x,y的二阶导数)必定要高过非边缘区域处的点。而由于我们的图像是一个个像素点组成的,所以,用离散化的点的刻画不仅更为直接,而且要比连续的曲面处理方便不少。这时,要做的只是将连续曲面上的导数进行离散化(将微分方程改写成差分方程)。在边缘提取里,将这样的离散化,称作"算子"。其中,基于一阶导数著名算子为普通一阶微分算子,Roberts及Sobel算子,基于二阶导数又称为拉普拉斯(Laplace)算子。这算子具体操作起来,其实就是将每个像素点四周的点进行相应的差分运算,实际表现为一个9个像素值(像素x,y及其周围的八个像素,图像四周上的像素作为非边缘点处理)和其对应系数的内积操作,得到的是关于像素点(x,y)的相应导数值,再设定好相应的阙值,即可显示出边缘提取的效果。具体的算子操作在数字图像的课本上都有详述,这里不再赘述。所以,真正进行边缘提取操作还是相当容易的,这容易还是赖于前人栽树的功劳啊。   [实验结果]   实现相对简单,具体实现代码请参考源码。   下面给出两组实验结果,看来,从视觉感受来说,一阶微分算子效果要好些,而二阶的边缘提取能将图像的更多细节变化提取出来,在进一步进行图像处理里,所得信息会更有用些。      图3:普通一阶微分算子 图4:拉普拉斯算子1 下载本文示例代码


玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取玩玩数字图像处理之边缘提取
阅读(158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~