Laplacian函数
Laplacian函數:
函數功能:
對圖像求二階導數,一般用于邊緣突出
Laplacian 算子?的定義:
函數調用形式:
void?Laplacian(InputArray?src, OutputArray?dst, int?ddepth, int?ksize=1, double?scale=1, double?delta=0, int?borderType=BORDER_DEFAULT?)
函數參數詳解:
InputArray?src:輸入圖像
OutputArray?dst:輸出圖像
int?ddepth:表示輸出圖像的深度
depth 圖像元素的位深度,可以是下面的其中之一:
? ? ? ? ? ? ? ? ? ? ?位深度 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?取值范圍
? ? ? IPL_DEPTH_8U - 無符號8位整型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??0--255
? ? ?IPL_DEPTH_8S - 有符號8位整型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-128--127
? ? ?IPL_DEPTH_16U - 無符號16位整型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??0--65535
? ? ?IPL_DEPTH_16S - 有符號16位整型 ? ? ? ? ? ? ? ? ? ? ? ? ??-32768--32767
? ? ?IPL_DEPTH_32S - 有符號32位整型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0--65535
? ? ?IPL_DEPTH_32F - 單精度浮點數 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??0.0--1.0
? ? ?IPL_DEPTH_64F - 雙精度浮點數 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0--1.0
int?ksize=1:表示拉普拉斯核的大小,1表示核的大小是三:
When?ksize?==?1?, the Laplacian is computed by filtering the image with the following?aperture:
double? scale =1:表示是否對圖像進行放大或者縮小
double?delta=0:表示是否在輸出的像素中加上一個量
int?borderType=BORDER_DEFAULT:表示處理邊界的方式,一般默認
opencv代碼:
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <stdlib.h> #include <stdio.h>using namespace cv;/** @函數 main */ int main( int argc, char** argv ) {Mat src, src_gray, dst;int kernel_size = 3;int scale = 1;int delta = 0;int ddepth = CV_16S;char* window_name = "Laplace Demo";int c;/// 裝載圖像src = imread( argv[1] );if( !src.data ){ return -1; }/// 使用高斯濾波消除噪聲GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );/// 轉換為灰度圖cvtColor( src, src_gray, CV_RGB2GRAY );/// 創建顯示窗口namedWindow( window_name, CV_WINDOW_AUTOSIZE );/// 使用Laplace函數Mat abs_dst;Laplacian( src_gray, dst, ddepth, kernel_size, scale, delta, BORDER_DEFAULT );convertScaleAbs( dst, abs_dst );/// 顯示結果imshow( window_name, abs_dst );waitKey(0);return 0;}
總結
以上是生活随笔為你收集整理的Laplacian函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GaussianBlur函数
- 下一篇: pyrDown和pyrUp函数