精华内容
下载资源
问答
  • 图像平滑锐化

    2013-10-24 12:26:04
    图像的平滑锐化处理,可用拉普拉斯锐化,门限梯度锐化,平滑处理可选模板大小,以及线性滤波、均值滤波等方式
  • 图像处理平滑锐化

    2013-04-17 12:21:29
    详细介绍了利用opencv进行图像平滑锐化处理,详细代码。
  • 图像平滑 锐化 VB编程 旋转等基本可以实现
  • 个人整理的opencv平滑(4中方法),锐化,去雾代码,都是调试通过的,代码也很简单,如果复制整个工程有 问题,就直接拷贝cpp即可 (内含测试图片)
  • 数字图像处理有关的平滑锐化,几何变换等代码
  • 基于VC++6.0MFC的数字图像处理的平滑锐化、雕刻、浮雕特效处理。
  • 学习图像处理技术时 做的笔记 有原理和代码
  • (2) 图像增强:包括直方图拉升(线性和非线性)、直方图均衡、平滑锐化(采用不同的滤镜) (3) 图像恢复:几何操作(如旋转、缩放、等)、模糊恢复(如运动模糊消除等,加分项) ; (4) 图像合成(加分项) :实现换背景、图像...
  • 文章目录1.自制调用接口2.傅里叶变换接口3.其他接口4. 效果展示 原图进行傅里叶变换,用频域图片还原原图: 1.自制调用接口 HILPF 理想低通 ... my_DFT(srcImage, "D_理想低D=5", "iD_理想低D=5", HILPF, D_2(5));...

    点击链接→【数字图像处理】简单实践汇总

    原图进行傅里叶变换,用频域图片还原原图:

    原图进行傅里叶变换,用频域图片还原原图

    1. 自制调用接口

    • HILPF 理想低通
    • HIHPF 理想高通
    • HBLPF 巴特沃斯低通
    • HBHPF 巴特沃斯高通
    • HGLPF 高斯低通
    • HGHPF 高斯高通
        //理想
    	my_DFT(srcImage, "D_理想低D=5",   "iD_理想低D=5",   HILPF, D_2(5));
    	my_DFT(srcImage, "D_理想低D=50",  "iD_理想低D=50",  HILPF, D_2(50));
    	my_DFT(srcImage, "D_理想低D=150", "iD_理想低D=150", HILPF, D_2(150));
    	my_DFT(srcImage, "D_理想高D=5",   "iD_理想高D=5",   HIHPF, D_2(5));
    	my_DFT(srcImage, "D_理想高D=50",  "iD_理想高D=50",  HIHPF, D_2(50));
    	my_DFT(srcImage, "D_理想高D=150", "iD_理想高D=150", HIHPF, D_2(150));
    
    	//巴特沃斯
    	my_DFT(srcImage, "D_巴特低D=5",   "iD_巴特低D=5",   HBLPF, D_2(5));
    	my_DFT(srcImage, "D_巴特低D=50",  "iD_巴特低D=50",  HBLPF, D_2(50));
    	my_DFT(srcImage, "D_巴特低D=150", "iD_巴特低D=150", HBLPF, D_2(150));
    	my_DFT(srcImage, "D_巴特高D=5",   "iD_巴特高D=5",   HBHPF, D_2(5));
    	my_DFT(srcImage, "D_巴特高D=50",  "iD_巴特高D=50",  HBHPF, D_2(50));
    	my_DFT(srcImage, "D_巴特高D=150", "iD_巴特高D=150", HBHPF, D_2(150));
    
    	//高斯
    	my_DFT(srcImage, "D_高斯低D=5",   "iD_高斯低D=5",   HGLPF, D_2(5));
    	my_DFT(srcImage, "D_高斯低D=50",  "iD_高斯低D=50",  HGLPF, D_2(50));
    	my_DFT(srcImage, "D_高斯低D=150", "iD_高斯低D=150", HGLPF, D_2(150));
    	my_DFT(srcImage, "D_高斯高D=5",   "iD_高斯高D=5",   HGHPF, D_2(5));
    	my_DFT(srcImage, "D_高斯高D=50",  "iD_高斯高D=50",  HGHPF, D_2(50));
    	my_DFT(srcImage, "D_高斯高D=150", "iD_高斯高D=150", HGHPF, D_2(150));  
    
    

    效果图在最后!

    2. 傅里叶变换接口

    • 第二个参数:D指的是DFT傅里叶变换后频域效果图的窗口名;
    • 第三个参数:iD指的是iDFT傅里叶逆变换后空间域,处理效果图的窗口名;
    • 第四个参数:这个函数分别调用理想、巴特沃斯、高斯;
    • 第五个参数:不同的截止频率,高通、低通,都可以,这里用的5,50,150;
    void my_DFT(Mat srcImage, string window_name1, string window_name2, double fun(int, int, int), double d0_2)
    {
    	Mat src = srcImage.clone();
    	//dft
    	int r = getOptimalDFTSize(src.rows);
    	int c = getOptimalDFTSize(src.cols);
    	Mat padded;
    	copyMakeBorder(src, padded, 0, r - src.rows, 0, c - src.cols, BORDER_CONSTANT, Scalar::all(0));
    	Mat dst1[] = { Mat_<float>(padded), Mat::zeros(padded.size(), CV_32F) };
    	Mat dst2;
    	merge(dst1, 2, dst2);
    	dft(dst2, dst2);
    	split(dst2, dst1);
    	//copy the REAL and log it
    	Mat dst_0 = dst1[0].clone();
    	magnitude(dst_0, dst1[1], dst_0);
    	dst_0 = dst_0(Rect(0, 0, dst_0.cols & -2, dst_0.rows & -2));
    	log(dst_0, dst_0);
    	normalize(dst_0, dst_0, 0, 1, NORM_MINMAX);
    	//exchange
    	my_exchange(dst_0);
    	my_exchange(dst1[0]);
    	my_exchange(dst1[1]);
    	//smooth & sharp
    	for (int i = 0; i < src.rows; i++)
    	{
    		for (int j = 0; j < src.cols; j++)
    		{
    			dst_0.at<float>(i, j) = dst_0.at<float>(i, j) * fun(i, j, d0_2);
    			dst1[0].at<float>(i, j) = dst1[0].at<float>(i, j) * fun(i, j, d0_2);
    			dst1[1].at<float>(i, j) = dst1[1].at<float>(i, j) * fun(i, j, d0_2);
    		}
    	}
    	imshow(window_name1, dst_0);
    	//exchange
    	my_exchange(dst1[0]);
    	my_exchange(dst1[1]);
    	//idft
    	merge(dst1, 2, dst2);
    	Mat complexim = dst2.clone();
    	Mat iDft[] = { Mat::zeros(dst1[0].size(),CV_32F),Mat::zeros(dst1[0].size(),CV_32F) };
    	idft(complexim, complexim);
    	split(complexim, iDft);
    	magnitude(iDft[0], iDft[1], iDft[0]);
    	normalize(iDft[0], iDft[0], 1, 0, NORM_MINMAX);
    	imshow(window_name2, iDft[0]);
    }
    
    

    3. 其他接口

    注意: 傅里叶变换可以不用对角线交换,在空域填个负号可以有一样的效果,但是如果这样的话,还原的时候就会出问题,所以选择交换。这里也花了不少时间才调试对的。

    void my_exchange(Mat& src)
    {
    	int cx = src.cols / 2;
    	int cy = src.rows / 2;
    	Mat temp;
    	Mat part1(src, Rect(0, 0, cx, cy));
    	Mat part2(src, Rect(cx, 0, cx, cy));
    	Mat part3(src, Rect(0, cy, cx, cy));
    	Mat part4(src, Rect(cx, cy, cx, cy));
    	part1.copyTo(temp);
    	part4.copyTo(part1);
    	temp.copyTo(part4);
    	part2.copyTo(temp);
    	part3.copyTo(part2);
    	temp.copyTo(part3);
    }
    
    //return D_2
    double D_2(int d)
    {
    	return d * d;
    }
    

    理想低通,高通

    //HILPF
    double HILPF(int u, int v, int d0_2)
    {
    	if (D_square(u, v) <= d0_2)
    	{
    		return 1;
    	}
    	else
    	{
    		return 0;
    	}
    }
    
    //HIHPF
    double HIHPF(int u, int v, int d0_2)
    {
    	return 1 - HILPF(u, v, d0_2);
    }
    
    

    巴特沃斯低通,高通

    //HBLPF
    double HBLPF(int u, int v, int d0_2)
    {
    	return 1 / (1 + D_square(u, v) / d0_2);
    }
    
    //HBHPF
    double HBHPF(int u, int v, int d0_2)
    {
    	return 1 - HBLPF(u, v, d0_2);
    }
    
    

    高斯低通,高通

    //HGLPF
    double HGLPF(int u, int v, int d0_2)
    {
    	return pow(exp(1), -0.5 * D_square(u, v) / d0_2);
    }
    
    //HGHPF
    double HGHPF(int u, int v, int d0_2)
    {
    	return 1 - HGLPF(u, v, d0_2);
    }
    
    

    4. 效果展示

    • HILPF 理想低通
      在这里插入图片描述

    • HIHPF 理想高通
      在这里插入图片描述

    • HBLPF 巴特沃斯低通

    在这里插入图片描述

    • HBHPF 巴特沃斯高通

    在这里插入图片描述

    • HGLPF 高斯低通

    在这里插入图片描述

    • HGHPF 高斯高通

    在这里插入图片描述

    展开全文
  • 利用matlab编写的图像平滑锐化程序,包括:'均值滤波','中值滤波','罗伯特梯度','Prewitt算法','Sobel梯度','Laplace算子','Laplace算子扩展模板','方向算子'
  • 使用以下内核研究空间域滤波 - 平滑锐化滤波器: 1)平滑: A=[1,1,1;1,1,1;1,1,1]; B=[1,2,1;2,4,2;1,2,1]; 2)锐化A=[0,1,0;1,-4,1;0,1,0]; B=[1,1,1;1,-8,1;1,1,1]; 简单易懂的代码。 随意分享...
  • 图像平滑锐化

    2014-05-21 15:47:29
    主要是matlab下的图像哦樱花与锐化的实现
  • 图像平滑锐化

    2013-11-03 22:15:23
    本资源采用vc6.0实现,无需配置任何其他东西便可运行(内附原图)。实现了位图读取、平滑、Roberts和Laplacian等的锐化
  • 图像处理-平滑锐化

    万次阅读 2015-03-02 16:07:31
    图像平滑锐化(转)" alt="数字图像处理学习笔记1- 图像平滑锐化(转)" src="http://s10.sinaimg.cn/middle/6c083cdd495b316784ce9&690"> 可以看到,图2 比图1 柔和一些(也模糊一些)。是不是觉得很神奇?...

    1.平滑(smoothing)
    先举个例子说明一下什么是平滑,如下图所示:

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    可以看到,图2 比图1 柔和一些(也模糊一些)。是不是觉得很神奇?其实实现起来很简单。我们将原图中
    的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度,就能实现上面的效
    果。这么做并非瞎蒙,而是有其道理的。大概想一想,也很容易明白。举个例子,就象和面一样,先在中
    间加点水,然后不断把周围的面和进来,搅拌几次,面就均匀了。
    用信号处理的理论来解释,这种做法实现的是一种简单的低通滤波器(low pass filter)。在灰度连续变化
    的图象中,如果出现了与相邻像素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能
    很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪
    声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪
    声的目的。
    为了方便的叙述上面所说的"将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图
    中对应点的灰度"这一操作,我们用如下的表示方法:
    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)
    这种表示方法有点象矩阵,我们称其为模板(template)。中间的黑点表示中心元素(此处用*表示),即,用哪
    个元素做为处理后的元素。例如(2* 1)表示将自身的2 倍加上右边的元素作为新值,而(2 1*)表示将自身加
    上左边元素的2 倍作为新值。通常,模板不允许移出边界,所以结果图象会比原图小,例如模板数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)
    原图是数字图像处理学习笔记1- <wbr>图像平滑,锐化(转),经过模板操作以后的图像为数字图像处理学习笔记1- <wbr>图像平滑,锐化(转),数字代表灰度,x表示边界上无法进行模板操作的点,通常的做法是复制原图的灰度,不进行任何处理。
    模板操作实现了一种邻域运算(Neighborhood Operation),即,某个像素点的结果不仅和本像素灰度有关,
    而且和其邻域点的值有关。在以后介绍的细化算法中,我们还将接触到邻域运算。模板运算的数学涵义是
    一种卷积(或互相关)运算,你不需要知道卷积的确切概念,有这么一个概念就可以了。

    模板运算在图象处理中经常要用到,可以看出,它是一项非常耗时的运算,以数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)为例,每个像素完成一次模板操作要用9个乘法,8个加法,1个除法。对于一幅N*N(宽度*高度)的图象,就是9N^2个乘法,8N^2个加法和N^2个除法,算法复杂度为 O(N^2),这对于大图象来说,是非常可怕的。所以,一般常用的模板并不大,如3*3,4*4。有很多专用的图象处理系统,用硬件来完成模板运算,大大提高了速度。另外,可以设法将2维模板运算转换成1维模板运算,对速度的提高也是非常可观的。例如,(2)式可以分解成一个水平模板和一个竖直模板,即,数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    我们来验证一下,设图像为数字图像处理学习笔记1- <wbr>图像平滑,锐化(转),经过(3.2)式处理以后变为数字图像处理学习笔记1- <wbr>图像平滑,锐化(转),经过2.1处理以后结果相同,如果计算时不考虑周围一圈的像素,前者做了4*(9个乘法,8个加法,1个除法),共36个乘法,32个加法,4个除法;后者做了4*(3个乘法,2个加法)+4*(3个乘法,2个加法)+4个除法,共24个乘法,16个加法,4个除法,运算简化了不少,如果是大图,效率的提高将是非常客观的。

    平滑模板的思想是通过一点和周围8个点的平均来去除突然变化的点,从而滤掉一定的噪声,其代价是图象有一定程度的模糊。上面提到的模板(1),就是一种平滑模板,称之为Box模板。Box模板虽然考虑了邻域点的作用,但并没有考虑各点位置的影响,对于所有的9个点都一视同仁,所以平滑的效果并不理想。实际上我们可以想象,离某点越近的点对该点的影响应该越大,为此,我们引入了加权系数,将原来的模板改造为:

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)
    可以看出,距离越近的点,加权系数越大。新的模板其实也是一个常用的平滑模板,称为高斯(Gauss)模板。为什么叫这个名字,这是因为这个模板是通过采样2维高斯函数得到的。

    下图中,从左到右分别是原图,经过高斯模板处理的图,和经过BOX模板处理的图。可以看出,采用高斯模板在平滑处理的过程中,效果要比Box模板清晰一些。

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    2.中值滤波
    中值滤波也是一种典型的低通滤波器,它的目的是保护图象边缘的同时去除噪声。所谓中值滤波,就是指把以某点(x,y)为中心的小窗口内的所有像素的灰度按从大到小的顺序排列,将中间值作为(x,y)处的灰度值(若窗口中有偶数个像素,则取两个中间值的平均)。中值滤波是如何去除噪声的呢?举个例子就很容易明白了。

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    上图中左边是原图,数字代表该处的灰度。可以看出中间的6和周围的灰度相差很大,是一个噪声点。经过3*1窗口(即水平3个像素取中间值)的中值滤波,得到右边那幅图,可以看出,噪声点被去除了。拿中值滤波和上面介绍的两种平滑模板做个比较,看看中值滤波有什么特点。

    1.中值滤波的特点是保护图象边缘的同时去除噪声。

    我们以一维模板为例,只考虑水平方向,大小为3*1(宽*高)。Box模板为数字图像处理学习笔记1- <wbr>图像平滑,锐化(转);Gauss模板为数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)
    结果如下所示:

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

                    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    2.中值滤波对高斯噪声无效,高斯模板对高斯噪声非常有效。

                 数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    3.中值滤波对脉冲噪声非常有效。

                 数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    总结:中值滤波容易去除孤立点,线的噪声同时保持图象的边缘,它能很好的去除二值噪声,但对高斯噪声无能为力。要注意的是,当窗口内噪声点的个数大于窗口宽度的一半时,中值滤波的效果不好。这是很显然的。

    3.锐化

    锐化和平滑恰恰相反,它是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波(high pass filter)。锐化处理在增强图象边缘的同时增加了图象的噪声。常用的锐化模板是拉普拉斯(Laplacian)模板。

                                        数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    容易看出拉普拉斯模板的含义,先将自身与周围的8个像素相减,表示自身与周围像素的差别,再将这个差别加上自身作为新像素的灰度。可见,如果一片暗区出现了一个亮点,那么锐化处理的结果是这个亮点变得更亮,增加了图象的噪声.

    图1经过拉普拉斯模板处理后,如图4所示:

    数字图像处理学习笔记1- <wbr>图像平滑,锐化(转)

    展开全文
  • 平滑锐化算子

    千次阅读 2017-04-15 16:14:20
    I=imread('imagefile.jpg'); %读入图像 J=imnoise(I,'gauss',0.05,0.02); %添加高斯噪声 %J=imnoise(I,'salt&pepper',0.02); %添加椒盐噪声 x=[0,1,0;1,-4,1;0,1,0]; %拉普拉斯算子 y=[-1,-1,-1
    I=imread('imagefile.jpg');                      %读入图像
    J=imnoise(I,'gauss',0.05,0.02);         %添加高斯噪声
    %J=imnoise(I,'salt&pepper',0.02);       %添加椒盐噪声
    x=[0,1,0;1,-4,1;0,1,0];                 %拉普拉斯算子
    y=[-1,-1,-1;-1,9,-1;-1,-1,-1];        
    z=[1,1,1;1,2,1;1,1,1]/10;
    L=imfilter(I,x);
    M=imfilter(I,y);
    N=imfilter(I,z);
    imshow(I);
    figure,imshow(L);
    figure,imshow(M);
    figure,imshow(N);

    展开全文
  • 锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts算子、Sobel算子边缘检测处理和Laplace算子边缘增强处理,是图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。 图像平滑主要目的是...
  • 完整的平滑中值锐化代码,详细的注释,更好的了解程序
  • 分别采用RGB模型和HIS模型对图像imageLane.bmp进行平滑锐化,并比较两种模型处理后结果是否相同(两种模型处理后的图像相减)。
  • Hants处理时序遥感影像,平滑锐化
  • c++的数字图像平滑锐化处理

    热门讨论 2009-05-31 17:49:53
    数字图像的c++处理程序 其中使用的c++进行简单的数字图像的平滑锐化处理,改善图像效果。
  • matlab 图像的平滑锐化

    万次阅读 2016-11-21 22:54:39
    1.读入一幅图像,分别采用均值和高斯滤波器对图像进行平滑处理>> clear all; >> sample = imread('sample.jpg'); >> mean3Sample = filter2(fspecial('average',3),sample)/255; >> mean5Sample = filter2(fspecial...

    1.读入一幅图像,分别采用均值和高斯滤波器对图像进行平滑处理

    >> clear all;
    >> sample = imread('sample.jpg');
    >> mean3Sample = filter2(fspecial('average',3),sample)/255;
    >> mean5Sample = filter2(fspecial('average',5),sample)/255;
    >> mean7Sample = filter2(fspecial('average',7),sample)/255;
    >> gaussianSample = filter2(fspecial('gaussian'),sample)/255;

    2.使用’subplot’命令,将原始图像,平滑处理后的图像同时显示出来

    >> subplot(2,2,1);
    >> imshow(sample); %原始图像
    >> subplot(2,2,2);
    >> imshow(mean7Sample); %采用均值进行平滑处理
    >> subplot(2,2,3);
    >> imshow(sample); %原始图像
    >> subplot(2,2,4);
    >> imshow(gaussianSample); %高斯滤波器进行平滑处理

    3.分别采用’prewitt’和’sobel’边缘算子对图像做边缘增强处理,并显示边缘处理后的图像

    %采用’prewitt’算子:
    >> prewittSample = uint8(filter2(fspecial('prewitt'),sample));
    >> imshow(prewittSample);
    %采用’ sobel’算子:
    >> sobelSample = uint8(filter2(fspecial('sobel'),sample));
    >> imshow(sobelSample);

    4.采用“原图*2-平滑图像”,以及“原图+边缘处理图像”的方法锐化图像

    %采用“原图*2-平滑图像”方法:
    >> subSample = sample.*2 - uint8(mean7Sample);
    >> imshow(subSample);
    %采用“原图+边缘处理图像”方法
    >> addSample = sample + uint8(prewittSample);
    >> imshow(addSample);
    展开全文
  • 图像的平滑锐化的原理及实现,如果做图像增强,这些应该有用
  • 图像增强VS2017编译通过,可直接运行 包括 图像平滑 中值滤波 梯度锐化 拉普拉斯锐化 伪彩色编码
  • 实用标准文案 XXXXXXXX 大学数字图形处理实验报告 实验名称 图像的平滑锐化 实验时间 年 月 日 专 业 姓 名 学 号 预 习 操 作 座 位 号 教师签名 总 评 一实验目的 1. 了解图像平滑的邻域平均和中值滤波以及锐化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,347
精华内容 2,538
关键字:

平滑锐化