OpenCV學習:Laplance算子

第十五課 Laplance算子
1.理論
在二階導數的時候,最大變化處的值爲零,即邊緣爲零值,通過二階導數計算,依次理論我們可以計算
圖像二階導數,提取邊緣。
2.API使用
高斯模糊-去噪聲GaussianBlur()
轉換爲灰度圖像cvtColor()
拉普拉斯-二階導數計算Laplancian()
取絕對值convertScaleAbs()
顯示結果
3.代碼演示

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

	using namespace cv;
	using namespace std;

	int main(int argc, char**argv)
	{
		Mat src,dst;
		src = imread("H:/pictures/prepic.png");

		if (!src.data)
		{
			cout << "could not load image.." << endl;
			return -1;
		}
		char input_title[] = "input image";
		char output_titlle[] = "Laplance result";
		namedWindow(input_title, CV_WINDOW_AUTOSIZE);
		namedWindow(output_titlle, CV_WINDOW_AUTOSIZE);
		imshow("input", src);

		Mat gray_src, edge_image;
		GaussianBlur(src, dst, Size(3, 3), 0, 0);
		cvtColor(dst, gray_src, CV_BGR2GRAY);
		Laplacian(gray_src, edge_image, CV_16S, 3);
		convertScaleAbs(edge_image, edge_image);
		//二值化
		threshold(edge_image, edge_image, 0, 255, THRESH_OTSU | THRESH_BINARY);
		imshow(output_titlle, edge_image);

		waitKey(0);
		return 0;
	}
發佈了20 篇原創文章 · 獲贊 4 · 訪問量 2539
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章