在图像的处理过程中,经常要用到卷积模板,如图像锐化、图像平滑、高斯模糊、Hough变换等,为此,本人使用Delphi编写了图像通用卷积处理过程和高斯模糊过程,代码如下:
因为要进行图像卷积操作,必须拷贝出源图像,本文过程在拷贝源图像时使用ImageGetExpandData过程附带扩展了其边框,这样在卷积图像边界像素时不必再进行坐标范围判断,从而简化了代码和提高了运行速度。
由于本文提供的是通用的卷积过程,尽管使用了BASM代码,但还是比较耗时的,如果对速度有特别要求的卷积操作,建议写专用的处理过程为好,例如Hough变换,其卷积核为1,就没必要在卷积过程中使用耗时的除法运算了。
下面是高斯模糊过程测试代码:
下面是采用不同Q值进行高斯模糊的运行结果图:
左边是原始图像,其后分别是采用Q=1、2、3调用GdipGaussiabBlur过程高斯模糊后的图像,最右边一幅是使用Photoshop8.1cs高斯模糊(Q=3)处理的。
可以看出,本过程处理的图片和Photoshop处理的图片效果基本接近,同等Q值(3)情况下,Photoshop处理的模糊程度似乎稍稍强一些,可能是算法上的差异,我的过程自动计算的Radius是Q+2,我用Q=3,Radius=6,也就是采用13*13卷积矩阵的模糊效果似乎更接近Photoshop的处理效果,难道Photoshop的Radius为Q * 2?这样一来,采用的卷积矩阵会更大,应该不是,不过,上面的高斯模糊过程中Radius可以任意给定而不通过自动计算,可以反复试试,以模仿Photoshop的处理;另外,当Q=3时图像好像已经模糊的很厉害了,其实,对于高分辨率(200-300)图像,Q=3的高斯模糊程度并没有这么明显,我采用的图片分辨率为72,而且这张图片已经是经过Photoshop过滤、模糊处理后合成的。
下面给出一个直接调用GdipConvolution过程进行Hough变换的例子作为本文结束:
运行效果如下图:
左边是原始图像,后面分别为用不同的Hough矩阵的运行效果,见例子代码中的几组Ray数组。作Hough变换,一般应该采用灰度图,本例子只是演示一下,没做图片灰度处理。
文章中所用数据类型及一些过程见《Delphi图像处理 -- 数据类型及内部过程》和《Delphi图像处理 -- 图像像素结构与图像数据转换》。
例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。
尽管我十分努力,但水平有限,错误在所难免,欢迎指正和指导。邮箱地址:
maozefa@hotmail.com
注:本文已经于2009.10.28重新整理。
本文代码于2010.5.20重新修订过。增加了拷贝形式的调整过程和响应回调函数的调整过程。代码中的ExecuteAbort过程和ExecuteProc过程见《Delphi图像处理 -- 图像像素结构与图像数据转换》。
修订过的卷积过程对于卷积核小于等于1的卷积模板采用了MMX处理,过程速度相当快,当然也要求其模板单个数据项不得超过127,整个模板数据项与255的乘积和不得超过$7fff(一般卷积核小于等于1的卷积模板都远远小于这些值)。对于卷积核大于1的卷积模板,本文代码也作了很大改进,速度比以前有所提高。
另外,高斯模糊处理过程已经另写(见《Delphi图像处理 -- 图像高斯模糊处理(改进版)》),本文的高斯模糊例子就作为遗迹存放吧(代码是有效的,只是处理过程不在本文)!
分享到:
相关推荐
数字信号处理课程设计-用FFT实现快速卷积.docx数字信号处理课程设计-用FFT实现快速卷积.docx数字信号处理课程设计-用FFT实现快速卷积.docx数字信号处理课程设计-用FFT实现快速卷积.docx数字信号处理课程设计-用FFT...
图像融合 图像处理(卷积、高斯模糊)
图像分割:先对图像进行高斯编导,在进行卷积,显示图像!
均值滤波--中值滤波--sobel模板计算图像梯度
图像降噪_基于Matlab+深度卷积神经网络CNN实现的图像降噪+图像模糊恢复算法_效果好_示例丰富_项目源码_优质项目分享.zip
图像处理-读取bmp图像均值滤波-C++
结合染色校正和卷积神经网络的细胞图像识别方法,杨金鑫,杨辉华,细胞图像识别是医学图像处理中的重要组成部分。由于医学图像具有尺寸较大,细胞形状各异等特性导致细胞识别工作通常费时费力。因
MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测(完整源码和数据) MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测(完整源码和数据) 数据为图像分类数据,程序乱码是由于版本不一致导致,可以用...
11-1页-深度卷积神经网络的宫颈癌细胞图像识别.pdf
人工智能-目标检测-基于卷积神经网络的航拍图像目标检测技术研究.pdf
hybrid_图像处理(卷积、高斯模糊)_模糊处理_图像融合.zip
高斯卷积模板(高斯函数)Matlab代码,可实现二维高斯卷积模板的生成功能。M文件,可用记事本打开。
点态SA-DCT正则化反卷积。 本文给出的所有结果,都是使用基于低复杂度SA-DCT的算法得到的,并且可以使用点态自适应DCT Demobox进行复制。 用于去模糊,去噪,都有很好的效果。
基于卷积神经网络的医学图像癌变识别研究
hybrid_图像处理(卷积、高斯模糊)_模糊处理_图像融合_源码.zip
网络游戏-基于三维全卷积神经网络的结构磁共振图像去噪方法.zip
MATLAB 数字图像处理——平滑滤波处理 数字图像处理中的平滑...平滑滤波在数字图像处理中有广泛的应用,例如图像降噪、模糊效果、边缘检测等。选择适当的平滑滤波方法和参数取决于具体的应用场景和要处理的图像特点。
为了有效地修复大面积破损的面部图像,使用了解码器-编码器结构的卷积神经网络作为生成模型,并在其部分层之间增加skip-connection,以增强生成模型的结构信息预测能力,同时引入对抗训练策略优化生成模型。...
matlab 采用lucy-richardson方法对图像进行反变换