sobel運算元的檢測過程
將影象的每乙個點都用sobel運算元做卷積:乙個用來檢測垂直邊緣,乙個用來檢測水平邊緣,而最後兩個卷積的最大值將作為該點的輸出,即檢測後的灰度。
sobel運算元
sobel運算元包括兩組3*3的矩陣,左邊的表示垂直,右邊的表示水平。將它與影象作平面卷積,即可分別得出垂直及水平的亮度差分近似值。
主要**
clear all;
close all;
imag = imread('face7.jpg'); %讀取關鍵幀
imag = rgb2gray(imag); %轉化為灰度圖
subplot(131);imshow(imag):title('原圖');
[high,width] = size(imag); % 獲得影象的高度和寬度
f2 = double(imag);
u = double(imag);
usobel = imag;
for i = 2:high - 1 %sobel邊緣檢測
for j = 2:width - 1
gx = (u(i+1,j-1) + 2*u(i+1,j) + f2(i+1,j+1)) - (u(i-1,j-1) + 2*u(i-1,j) + f2(i-1,j+1));
gy = (u(i-1,j+1) + 2*u(i,j+1) + f2(i+1,j+1)) - (u(i-1,j-1) + 2*u(i,j-1) + f2(i+1,j-1));
usobel(i,j) = sqrt(gx^2 + gy^2);
endend
subplot(132);imshow(im2uint8(usobel)):title('邊緣檢測後'); %畫出邊緣檢測後的影象
% matlab自帶函式邊緣檢測
% k為獲取得到的關鍵幀的灰度圖
bw3 = edge(imag,'sobel', 0.09);
subplot(133);imshow(bw3,):title('matlab自帶函式邊緣檢測');在這裡插入**片
如果想用matlab自帶的其他運算元進行邊緣檢測的話,直接將edge中的sobel引數修改即可
邊緣檢測之Sobel檢測運算元
在討論邊緣運算元之前,首先給出一些術語的定義 1 邊緣 灰度或結構等資訊的突變處,邊緣是乙個區域的結束,也是另乙個區域的開始,利用該特徵可以分割影象。2 邊緣點 影象中具有座標 x,y 且處在強度顯著變化的位置上的點。3 邊緣段 對應於邊緣點座標 x,y 及其方位 邊緣的方位可能是梯度角。二 sob...
一階微分邊緣檢測運算元
l運算元的原理 roberts運算元 sobel 運算元和prewitt 運算元是三種常用微分邊緣檢測運算元 5 這三個運算元都以一階導數為基礎,先通過合適的微分運算元計算出影象的梯度矩陣,再對梯度矩陣進行二值化從而得到影象的邊緣。這三種演算法的原理如下,其中i為影象矩陣,g i,j 為最終的梯度矩...
imgproc模組 Sobel邊緣檢測運算元
1.目的 1 如何使用opencv函式sobel對影象求導數 2 如何使用opencv函式scharr對影象求導數 2.原理 1 影象邊緣 影象邊緣是影象畫素發生顯著變化的位置。使用卷積運算可以近似計算影象梯度,檢測影象邊緣,梯度值大意味影象內容發生顯著變化,可以認為該處為影象的邊緣處。2 sobe...