拉普拉斯 锐化

拉普拉斯锐化是一种很常见的图像增强技术,其实现简单,效果杠杠滴。在《数字图像处理》这本绿宝书中讲的很透彻,本文不打算详细讲解了,作为粗略的总结。

拉普拉斯锐化跟高斯滤波等都是相似的,拉普拉斯也有一个模板,就像高斯的模板一样。通过这个模板在图像中处理一遍后,就锐化了!


010
1-41
010
(1)这个模板只考虑4邻域

111
1-81
111
(2)这个模板称为对角掩膜,也就是考虑了8邻域,这种模板的锐化效果要更好一些。不过有时候会产生锐化过度的副作用。

0-10
-14-1
0-10
(3)这个模板的中心与(1)中的正好相反,没啥区别,唯一的区别在下面会说明一下。

请看下面结合opencv实现的代码:

//拉普拉斯滤波
void Laplace(IplImage *srcImg,IplImage *destImg)
{
	const int widthStep = srcImg->widthStep;
	uchar *pData = (uchar *)srcImg->imageData;
	for ( int i = 1; i < srcImg->height - 1; ++i )
		for ( int j  = 1; j < srcImg->width - 1; ++j )
		{
			int count = pData[(i-1)*widthStep + j] + pData[i*widthStep + j -1] +
				       pData[i*widthStep + j + 1] + pData[(i+1)*widthStep +j] ;//+
					   //pData[(i-1)*widthStep +j-1] +pData[(i-1)*widthStep+j+1] +
					   //pData[(i+1)*widthStep +j-1]+ pData[(i+1)*widthStep+j+1];
			int tmpGray = 4*pData[i*widthStep +j] - count;
			if (tmpGray >255 )
				tmpGray = 255;
			else if(tmpGray < 0 )
				tmpGray = 0;
			destImg->imageData[i*widthStep +j] = (uchar)tmpGray;
				       
		}

}

原图是


锐化完了居然变成了下面这样子!


其实这个锐化完的图像就相当于图像的轮廓线,下面是要把这幅轮廓线加到原图中,才会有锐化的效果。中心为负值的模板就是原图减去这个轮廓图。效果都是一样的,就是融合的时候加减的问题。


很多人说,好麻烦,还要再加上原图,其实只要把模板稍微变一变就OK了。原来是4,那么我现在变成5,模板扫荡一遍后就是锐化完的图片,再也不用另外相加了。


下面考虑我把4加1变成5就是锐化的原图,假如我不加1,我加了0.5,或者是1.5,会有神马效果呢?加上大于1的,会让图像变得更亮,但是锐化的就不是那么明显了。加上小于1的,图像自然会暗些。下面这幅图是4加上2的效果,,也就是模板的中心值为6.



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值