C/C++ OpenCV之Laplacian边缘检测
2017-01-10 16:52
411 查看
计算拉普拉斯变换:Laplacian()
void Laplacian(
inputArray src,
outputArray dst,
int deepth,
int ksize=1,
double scale=1,
double delta=0,
int borderType=BORDER_DEFAULT
)
其中int ksize=1,这是关键,这是1,3,5,7这类的奇数,越大说明识别越多
下面是代码:
运行结果:
我们把
Laplacian(src_gray, dst, CV_8U, 9, 1, 0, BORDER_DEFAULT);
改成
Laplacian(src_gray, dst, CV_8U, 3, 1, 0, BORDER_DEFAULT);
运行结果如下:
void Laplacian(
inputArray src,
outputArray dst,
int deepth,
int ksize=1,
double scale=1,
double delta=0,
int borderType=BORDER_DEFAULT
)
其中int ksize=1,这是关键,这是1,3,5,7这类的奇数,越大说明识别越多
下面是代码:
#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main() { Mat src, src_gray, dst; src = imread("1.jpg"); namedWindow("原图"); imshow("原图", src); //用高斯滤波降噪 Mat g_src; GaussianBlur(src, g_src, Size(3, 3), 0, 0); //灰度图像 cvtColor(g_src, src_gray, COLOR_RGB2GRAY); //开始边缘检测(Laplacian) Laplacian(src_gray, dst, CV_8U, 9, 1, 0, BORDER_DEFAULT); namedWindow("效果图"); imshow("效果图", dst); waitKey(); return 0; }
运行结果:
我们把
Laplacian(src_gray, dst, CV_8U, 9, 1, 0, BORDER_DEFAULT);
改成
Laplacian(src_gray, dst, CV_8U, 3, 1, 0, BORDER_DEFAULT);
运行结果如下:
相关文章推荐
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- OpenCV_(Laplacian Transform to find the edges)图像拉普拉斯变换查找边缘 图像识别
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法实现边缘检测代码(2)
- C/C++ OpenCV之Sobel边缘检测
- OpenCV3_C++_Canny()canny边缘检测 实例
- 边缘检测(6)Log(Laplacianof Gassian )算子
- C/C++ OpenCV之Scharr边缘检测
- OpenCV教程 之 边缘检测函数:Canny、Sobel、Scharr(C++)
- C/C++ OpenCV之Canny边缘检测
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- 边缘检测(6)Log(Laplacianof Gassian )算子
- OpenCV3_C++_Sobel()sobel边缘检测 实例
- Opencv之简单的边缘检测
- opencv中用Sobel算子进行边缘检测
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- OpenCV 2.4+ C++ 边缘梯度计算
- opencv之边缘检测 canny算子
- 学习OpenCV——Laplacian图像融合
- 检测边缘、检测直线----opencv2.0学习笔记3
- OpenCV读入视频,灰度化,并Canny边缘检测