Canny邊緣檢測

2021-09-18 05:53:24 字數 1140 閱讀 2441

vs2017&opencv4.0

#include #include #include #include using namespace cv;

mat src, gray_src, dst;

int t1_value = 50;

int max_value = 255;

const char* output_title = "canny result";

void canny_demo(int, void*);

int main(int argc, char** ar**)

char input_title = "input image";

namedwindow(input_title, window_autosize);

namedwindow(output_title, window_autosize);

imshow(input_title, src);

cvtcolor(src, gray_src, cv_bgr2gray);//轉化成灰度影象

createtrackbar("threshold value:", output_title, &t1_value, max_value, canny_demo);//滑動條

canny_demo(0, 0);

waitkey(0);

return 0;

}/*api – cv::canny

canny(

inputarray src, // 8-bit的輸入影象,當時它不支援彩色影象,所以要先把影象轉為灰度

outputarray edges,// 輸出邊緣影象, 一般都是二值影象,背景是黑色

double threshold1,// 低閾值,常取高閾值的1/2或者1/3

double threshold2,// 高閾值

int apterturesize,// soble運算元的size,通常3x3,取值3

bool l2gradient // 選擇 true表示是l2來歸一化,否則用l1歸一化, l1表示用sobel的兩個方向的運算元取絕對值再相加的和

l2表示用sobel的兩個方向的運算元平方和再開根號

)*/void canny_demo(int, void*)

Canny邊緣檢測

1.canny邊緣檢測基本原理 1 圖象邊緣檢測必須滿足兩個條件 一能有效地抑制雜訊 二必須盡量精確確定邊緣的位置。2 根據對訊雜比與定位乘積進行測度,得到最優化逼近運算元。這就是canny邊緣檢測運算元。3 類似與marr log 邊緣檢測方法,也屬於先平滑後求導數的方法。2.canny邊緣檢測演...

Canny邊緣檢測

canny運算元是邊緣檢測運算元中最常用的一種,是公認效能優良的一種運算元,常被其它邊緣檢測運算元作為標準運算元進行優劣分析。canny演算法基本可以分為3個步驟 平滑 梯度計算 基於梯度值及梯度方向的候選點過濾 1 平滑 影象梯度的計算對雜訊很敏感,因此必須首先對其進行低通濾波。在這裡使用5 5的...

Canny邊緣檢測

canny邊緣檢測是一種非常流行的邊緣檢測演算法,是john canny在1986年提出的。它是乙個多階段的演算法,即由多個步驟構成。1.影象降噪 2.計算影象梯度 3.非極大值抑制 4.閾值篩選 我們就事後諸葛亮,分析下這個步驟的緣由。首先,影象降噪。我們知道梯度運算元可以用於增強影象,本質上是通...