opencv之计算图像的拉普拉斯变换

拉普拉斯是一种基于图像倒数的高通线型滤波器,计算二阶导数以衡量图像的弯曲度。
2D函数的拉普拉斯变换定义为他的二阶导数之和

拉普拉斯核如下:

010
1-41
010

#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
class LaplacianZC
{
private:
	Mat img;//原图
	Mat laplace;//包含Laplacian的32位浮点图像
	int aperture;//卷积核的大小
public:
LaplacianZC():aperture(3) { }
	//设置卷积核的大小
	void setAperture(int a)
	{
		aperture=a;
	}
	//计算浮点数Laplacian
	Mat computeLaplacian(const Mat & image) {
	Laplacian(image,laplace,CV_32F,aperture);
	img=image.clone();
	return laplace;
	}
	Mat getLaplacianImage(double scale=-1.0){
	if(scale<0)
	{
		double lapmin,lapmax;
		minMaxLoc(laplace,&lapmin,&lapmax);
		scale=127/std::max(-lapmin,lapmax);
	}
	Mat laplaceImage;
	laplace.convertTo(laplaceImage,CV_8U,scale,128);
	return laplaceImage;
	}
};
int main()
{
	Mat image=imread("g:\\carlicense\\2.jpg");
	LaplacianZC laplacian;
	laplacian.setAperture(7);
	Mat flap=laplacian.computeLaplacian(image);
	Mat laplace=laplacian.getLaplacianImage();
	imshow("a",flap);
	imshow("b",laplace);
	waitKey();
	return 0;

}



运行结果:



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值