目錄
- sobel_dir(算子)
- 描述
- 參數
sobel_dir(算子)
sobel_dir - 使用Sobel算子檢測邊緣(振幅和方向)。
sobel_dir(Image : EdgeAmplitude, EdgeDirection : FilterType, Size : )
描述
sobel_dir計算圖像的一階導數,并用作邊緣檢測器。過濾器基于以下過濾器掩碼:
A =
1 2 1
0 0 0
-1 -2 -1
B =
1 0 -1
2 0 -2
1 0 -1
根據所選的過濾器類型,這些掩碼的使用方式不同。 (在下文中,a和b表示將圖像與A和B卷積為一個特定像素的結果。)
對于尺寸為3x3的Sobel算子,直接應用相應的濾波器A和B,而對于較大的濾波器尺寸,首先使用尺寸為Size-2的高斯濾波器(參見gauss_image)或二項式濾波器(參見binomial_filter)對輸入圖像進行平滑處理。 。為上述FilterType值選擇高斯濾波器。這里,必須使用Size = 5,7,9,11或13。通過將“_binomial”附加到FilterType的上述值來選擇二項式過濾器。這里,可以在5到39之間選擇大小。此外,可以通過在Size中傳遞兩個值來選擇不同的平滑列和行方向的量。這里,Size的第一個值對應于掩模寬度(列方向上的平滑),而第二個值對應于二項式濾波器的掩模高度(行方向的平滑)。二項式濾波器只能用于byte,uint2和real類型的圖像。由于平滑減小了邊緣幅度,在這種情況下,邊緣幅度乘以因子2以防止信息丟失。因此,
sobel_dir(I,Amp,Dir,FilterType,S)
對于Size > 3在概念上等同于
scale_image(I,F,2,0)gauss_image(F,G,S-2)sobel_dir(G,AMP,風向,過濾式,3)
或者
scale_image(I,F,2,0)binomial_filter(F,G,S [0] -2,S [1] -2)sobel_dir(G,AMP,風向,過濾式,3)。
邊緣方向在EdgeDirection中返回,并以2度步長存儲,即,在數學上正方向的x度的邊緣方向和相對于水平軸的邊緣方向在邊緣方向圖像中存儲為x / 2。此外,考慮強度變化的方向。讓我們表示圖像漸變。然后以r / 2返回以下邊緣方向:
邊緣幅度為0的點被指定為邊緣方向255(未定義的方向)。
sobel_amp可以在OpenCL設備上執行。請注意,當對Size> 3使用高斯過濾時,結果可能與CPU實現不同。
并行
支持OpenCL計算設備。
多線程類型:可重入(與非獨占運算符并行運行)。
多線程范圍:全局(可以從任何線程調用)。
在元組級別自動并行化。
在通道級別自動并行化。
在域級別自動并行化。
參數
Image (input_object)(多通道 - )圖像(-array)→對象(byte / int2 / uint2 / real)
輸入圖像。
EdgeAmplitude(output_object)(多通道 - )圖像(-array)→對象(byte / int2 / uint2 / real)
邊緣幅度(梯度幅度)圖像。
EdgeDirection(output_object)(多聲道 - )圖像(-array)→對象(方向)
邊緣方向圖像。
FilterType(input_control)string→(string)
過濾器類型。
默認值:‘sum_abs’
值列表:‘sum_abs’,‘sum_abs_binomial’,‘sum_sqrt’,‘sum_sqrt_binomial’
值列表(用于計算設備):‘sum_abs’,‘sum_sqrt’,‘sum_abs_binomial’,‘sum_sqrt_binomial’
Size(input_control)整數(-array)→(整數)
過濾面罩的大小。
默認值:3
值列表:3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39