请给出一段使用laplacian算子进行图像边缘检测的C/C++源程序
时间: 2023-06-08 15:05:45 浏览: 118
C++实现图像边缘检测
5星 · 资源好评率100%
以下是一段使用Laplacian算子进行图像边缘检测的C/C++源程序:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// Load the image
Mat imgSrc = imread("lena.jpg", IMREAD_GRAYSCALE);
// Create a Laplacian filter kernel with size 3x3
Mat kernelLaplacian = (Mat_<float>(3, 3) <<
0, 1, 0,
1, -4, 1,
0, 1, 0);
// Apply the Laplacian filter to the image
Mat imgDst;
filter2D(imgSrc, imgDst, CV_32F, kernelLaplacian);
// Normalize the output image
normalize(imgDst, imgDst, 0, 255, NORM_MINMAX, CV_8U);
// Display the output image
imshow("Laplacian Edge Detection", imgDst);
waitKey(0);
return 0;
}
```
此程序使用OpenCV库读取名为"lena.jpg"的图像,然后创建一个3x3的Laplacian滤波器核,将其应用于图像,并使用归一化函数进行输出图像的范围转换。输出图像包含检测到的边缘。
阅读全文