第19课 Laplance算子

1. 理论

在二阶导数的时候,最大变化处的值为零即边缘是零值。通过二阶
导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。
在这里插入图片描述
在这里插入图片描述

2. Laplance算子

  • 用Laplance算子对图像进行二阶求导
    在这里插入图片描述
  • Opencv已经提供了相关API - cv::Laplance

3. 处理流程

  1. 高斯模糊 – 去噪声GaussianBlur()
  2. 转换为灰度图像cvtColor()
  3. 拉普拉斯 – 二阶导数计算Laplacian()
  4. 取绝对值convertScaleAbs()
  5. 二值化threshold()

4. Laplacian() API

对图像进行Laplance算子运算。

Laplacian(
InputArray src,
OutputArray dst,
int depth, //深度CV_16S
int kisze, // 3
double scale = 1,
double delta =0.0,
int borderType = 4
)

在这里插入图片描述

5. 例程

#include<opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main() {
	Mat src, dst;
	src = imread("D:/resource/images/face.jpg");

	if (!src.data)
	{
		printf("the image could not be loaded...");
		waitKey(0);
		return -1;
	}

	imshow("input image", src);

	Mat blur_image;
	GaussianBlur(src, blur_image, Size(3, 3), 0, 0);

	Mat gray_image;
	cvtColor(blur_image, gray_image, COLOR_BGR2GRAY);

	Laplacian(gray_image, dst, -1);
	convertScaleAbs(dst, dst);
	threshold(dst, dst, 0, 255, THRESH_OTSU | THRESH_BINARY);
	imshow("output image", dst);

	waitKey(0);
	return 0;


}
发布了31 篇原创文章 · 获赞 12 · 访问量 2768

猜你喜欢

转载自blog.csdn.net/weixin_42877426/article/details/104245852