RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

MATLAB的Sobel圖像邊緣灰度值檢測算法的詳細公式和實現(xiàn)資料概述

電子工程師 ? 來源:未知 ? 作者:易水寒 ? 2018-08-26 09:47 ? 次閱讀

圖像邊緣就是圖像灰度值突變的地方,也就是圖像在該部分的像素值變化速度非常之快,就比如在坐標軸上一條曲線有剛開始的平滑突然來個大轉(zhuǎn)彎,在變化出的導數(shù)非常大。

Sobel算子主要用作邊緣檢測,它是一離散型差分算子,用來計算圖像亮度函數(shù)灰度之近似值。

邊緣是指其周圍像素灰度急劇變化的那些像素的集合。邊緣存在于目標、背景和區(qū)域之間,所以,邊緣是圖像分割所依賴的最重要的依據(jù)。由于邊緣是位置的標志,對灰度的變化不敏感,因此,邊緣也是圖像匹配的重要的特征。

Sobel邊緣檢測的核心在于像素矩陣的卷積,卷積對于數(shù)字圖像處理非常重要,很多圖像處理算法都是做卷積來實現(xiàn)的。卷積運算的本質(zhì)就是對指定的圖像區(qū)域的像素值進行加權(quán)求和的過程,其計算過程為圖像區(qū)域中的每個像素值分別與卷積模板的每個元素對應相乘,將卷積的結(jié)果作求和運算,運算到的和就是卷積運算的結(jié)果。

矩陣的卷積公式如下。

3x3的窗口M與卷積模板C的卷積運算如下。

Gx和Gy是sobel的卷積因子,將這兩個因子和原始圖像做如下卷積。

Sobel卷積因子

其中A代表原始圖像。

得到圖像中的每一個點的橫向縱向灰度值Gx、Gy。最后通過如下公式來計算改變灰度的大小。

但是通常為了提高效率,使用不開平方的近似值,雖然這樣做會損失精度,,

將Sobel算子的實現(xiàn)劃分為五個步驟:

(1) 計算Gx與Gy與模板每行的乘積。

(2) 兩個3x3矩陣的卷積即將每一行每一列對應相乘然后相加。

(3) 求得3*3模板運算后的Gx、Gy。

(4) 求Gx^2 + Gy^2的平方根或者直接對Gx和Gy取絕對值后求和。

(5)設置一個閾值,運算后的像素值大于該閾值輸出為全1,小于該閾值輸出為全0。

平方根和絕對值函數(shù)

sqrt(x) 計算平方根abs(x) 取數(shù)值的絕對值和復數(shù)的幅值

在對圖像數(shù)據(jù)進行運算時最好將圖像數(shù)據(jù)轉(zhuǎn)化成double類型的,避免精度損失。

Sobel邊緣檢測MATLAB實現(xiàn)

Sobel Edge Detect

1 %RGB_YCbCr 2 clc; 3 clear all; 4 close all; 5 6 RGB_data = imread('lena.jpg');% 7 8 R_data = RGB_data(:,:,1); 9 G_data = RGB_data(:,:,2);10 B_data = RGB_data(:,:,3);11 12 %imshow(RGB_data);13 14 [ROW,COL, DIM] = size(RGB_data); 15 16 Y_data = zeros(ROW,COL);17 Cb_data = zeros(ROW,COL);18 Cr_data = zeros(ROW,COL);19 Gray_data = RGB_data;20 21 for r = 1:ROW 22 for c = 1:COL23 Y_data(r, c) = 0.299*R_data(r, c) + 0.587*G_data(r, c) + 0.114*B_data(r, c);24 Cb_data(r, c) = -0.172*R_data(r, c) - 0.339*G_data(r, c) + 0.511*B_data(r, c) + 128;25 Cr_data(r, c) = 0.511*R_data(r, c) - 0.428*G_data(r, c) - 0.083*B_data(r, c) + 128;26 end27 end 28 29 Gray_data(:,:,1)=Y_data;30 Gray_data(:,:,2)=Y_data;31 Gray_data(:,:,3)=Y_data;32 33 figure;34 imshow(Gray_data);35 36 %Median Filter37 imgn = imnoise(Gray_data,'salt & pepper',0.02); 38 39 figure;40 imshow(imgn);41 42 Median_Img = Gray_data;43 for r = 2:ROW-144 for c = 2:COL-145 median3x3 =[imgn(r-1,c-1) imgn(r-1,c) imgn(r-1,c+1)46 imgn(r,c-1) imgn(r,c) imgn(r,c+1)47 imgn(r+1,c-1) imgn(r+1,c) imgn(r+1,c+1)];48 sort1 = sort(median3x3, 2, 'descend');49 sort2 = sort([sort1(1), sort1(4), sort1(7)], 'descend');50 sort3 = sort([sort1(2), sort1(5), sort1(8)], 'descend');51 sort4 = sort([sort1(3), sort1(6), sort1(9)], 'descend');52 mid_num = sort([sort2(3), sort3(2), sort4(1)], 'descend');53 Median_Img(r,c) = mid_num(2);54 end55 end56 57 figure;58 imshow(Median_Img);59 60 %Sobel_Edge_Detect61 62 Median_Img = double(Median_Img);63 Sobel_Threshold = 150;64 Sobel_Img = zeros(ROW,COL);65 for r = 2:ROW-166 for c = 2:COL-167 Sobel_x = Median_Img(r-1,c+1) + 2*Median_Img(r,c+1) + Median_Img(r+1,c+1) - Median_Img(r-1,c-1) - 2*Median_Img(r,c-1) - Median_Img(r+1,c-1);68 Sobel_y = Median_Img(r-1,c-1) + 2*Median_Img(r-1,c) + Median_Img(r-1,c+1) - Median_Img(r+1,c-1) - 2*Median_Img(r+1,c) - Median_Img(r+1,c+1);69 Sobel_Num = abs(Sobel_x) + abs(Sobel_y);70 %Sobel_Num = sqrt(Sobel_x^2 + Sobel_y^2);71 if(Sobel_Num > Sobel_Threshold)72 Sobel_Img(r,c)=0;73 else74 Sobel_Img(r,c)=255;75 end76 end77 end78 79 figure;80 imshow(Sobel_Img);

處理后的圖片效果

中值濾波后的lena

Sobel邊沿檢測后的lena

為了使圖像邊緣更加明朗,可以在Sobel的基礎上再進行腐蝕膨脹處理,腐蝕膨脹處理

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    185

    文章

    2974

    瀏覽量

    230380
  • 卷積
    +關注

    關注

    0

    文章

    95

    瀏覽量

    18507
  • 圖像邊緣
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7332

原文標題:基于MATLAB的Sobel邊緣檢測算法實現(xiàn)

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    算法系列:基于 FPGA 的圖像邊緣檢測系統(tǒng)設計(sobel算法

    [8:3]; 五、sobel 邊緣檢測 邊緣檢測的原理 該算子包含兩組 3x3 的矩陣,分別為橫向及縱向,將之與
    發(fā)表于 03-26 16:40

    基于FPGA的實時邊緣檢測系統(tǒng)設計,Sobel圖像邊緣檢測,F(xiàn)PGA圖像處理

    。 (2)MATLAB與FPGA運行時間對比 在MATLAB使用本文所述的 Sobel 邊緣檢測算法,提取一張1024720分辨率的
    發(fā)表于 05-24 07:45

    Matlab圖像自編邊緣檢測算法

    Matlab圖像自編邊緣檢測算法,多謝了
    發(fā)表于 12-03 20:58

    【Z-turn Board試用體驗】+ 基于Z-turn的圖像邊緣檢測系統(tǒng)(三)

    Library視頻庫替換,實現(xiàn)讀取功能,將其送入到加速模塊中,進行邊緣檢測算法處理。處理后結(jié)果利用HLS OpenCV Library庫函數(shù)進行寫入。算法流程框圖如所示。接下來分模塊
    發(fā)表于 07-07 20:41

    【Banana Pi M1+申請】閾值自適應視頻邊緣檢測算法的嵌入式快速實現(xiàn)

    申請理由:本人已經(jīng)成功完成閾值自適應視頻邊緣檢測算法的FPGA快速實現(xiàn),但FPGA也有很多局限性,所以想將硬件平臺從FPGA換成香蕉派。相信會有全新的體驗,和更加快捷的開發(fā)途徑。項目描述:在香蕉派上
    發(fā)表于 06-20 15:55

    基于FPGA的Sobel邊緣檢測實現(xiàn)

    就是圖像灰度突變的地方,亦即圖像在該部分的像素變化速度非常之快,這就好比在坐標軸上一條曲線有剛開始的平滑突然來個大轉(zhuǎn)彎,在變化出的導數(shù)非
    發(fā)表于 08-29 15:41

    基于FPGA的邊緣檢測Sobel算法

    轉(zhuǎn)帖摘要: 針對嵌入式軟件無法滿足數(shù)字圖像實時處理速度問題,提出用硬件加速器的思想,通過FPGA實現(xiàn)Sobel邊緣檢測算法。通過乒乓操作、并
    發(fā)表于 11-29 08:57

    圖像邊緣檢測算法體驗步驟(Photoshop,Matlab

    圖像邊緣檢測算法體驗步驟(Photoshop,Matlab)1. 確定你的電腦上已經(jīng)安裝了Photoshop和Matlab2. 使用手機或其
    發(fā)表于 03-06 10:51

    基于Qualcomm FastCv的邊緣檢測算法詳解

    、物質(zhì)屬性變化和場景照明變化等等。 邊緣檢測圖像處理和計算機視覺中,尤其是特征提取中的一個研究領域。一.算法原理:所謂邊緣是指其周圍像素
    發(fā)表于 09-21 11:45

    基于視覺圖像的微小零件邊緣檢測算法研究

    實現(xiàn)亞像素細分?! ? 擴展的Sobel細化算子  2.1 擴展的兩個模板  圖像目標的邊緣灰度不連續(xù)性的反映,其種類可粗略區(qū)分為:階躍性
    發(fā)表于 11-15 16:23

    Labview圖像處理——邊緣檢測

    邊緣灰度過度較為明顯,梯度算子可以得到較好的邊緣檢測結(jié)果。邊緣提取其實也是一種濾波,不同的算
    發(fā)表于 12-01 12:16

    迅為iTOP-RK3568開發(fā)板Sobel 算子邊緣檢測

    (索貝爾)算子是計算機視覺領域的一種重要處理方法。主要用于獲得數(shù)字圖像的一階梯度,常見的應用和物理意義是邊緣檢測。 索貝爾算子把圖像中每個像素的上下左右四領域的
    發(fā)表于 09-18 10:27

    基于改進Canny的圖像邊緣檢測算法

    劃分為階躍型和屋頂型兩種類型:階躍型邊緣兩邊的灰度有很大的差別;屋頂型邊緣存在于灰度從增加到
    發(fā)表于 11-02 15:15 ?19次下載
    基于改進Canny的<b class='flag-5'>圖像</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測算法</b>

    基于CORDIC的高速Sobel算法實現(xiàn)

    為提高圖像邊緣檢測的處理速度,提出一種基于CORDIC的高速Sobel算法實現(xiàn)
    的頭像 發(fā)表于 10-05 09:54 ?3561次閱讀
    基于CORDIC的高速<b class='flag-5'>Sobel</b><b class='flag-5'>算法</b><b class='flag-5'>實現(xiàn)</b>

    FPGA圖像處理的Sobel邊緣檢測

    分近似。如果以A代表原始圖像,Gx及Gy分別代表經(jīng)橫向及縱向邊緣檢測圖像灰度
    的頭像 發(fā)表于 03-22 09:45 ?2955次閱讀
    FPGA<b class='flag-5'>圖像</b>處理的<b class='flag-5'>Sobel</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>
    RM新时代网站-首页