欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matlab實現(xiàn)圖像邊緣檢測

 更新時間:2021年10月25日 16:10:31   作者:混z  
這篇文章主要為大家詳細介紹了Matlab實現(xiàn)圖像邊緣檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

為了在一幅圖像 f 的(x,y)位置尋找邊緣的強度和方向,所選擇的工具就是梯度,梯度使用向量來表示:

該向量指出了圖像 f 在位置(x,y)處的最大變化率的方向,梯度向量的大小表示為:

它是梯度向量方向變化率的值。
梯度向量的方向表示為:

梯度算子

roberts算子:

sobel算子:

prewitt算子:

Matlab實現(xiàn)

function output = my_edge(input_img,method)
if size(input_img,3)==3
    input_img=rgb2gray(input_img);
end

input_img=im2double(input_img);
sobel_x=[-1,-2,-1;0,0,0;1,2,1];
sobel_y=[-1,0,1;-2,0,2;-1,0,1];
prewitt_x=[-1,-1,-1;0,0,0;1,1,1];
prewitt_y=[-1,0,1;-1,0,1;-1,0,1];

psf=fspecial('gaussian',[5,5],1);
input_img=imfilter(input_img,psf);%高斯低通濾波,平滑圖像,但可能會使圖像丟失細節(jié)
input_img=medfilt2(input_img); %中值濾波消除孤立點
[m,n]=size(input_img);
output=zeros(m,n);
if nargin==2
    if strcmp(method,'sobel')
        for i=2:m-1
            for j=2:n-1
                local_img=input_img(i-1:i+1, j-1:j+1);
%近似邊緣檢測,加快速度    %output(i,j)=abs(sum(sum(sobel_x.*local_img)))+abs(sum(sum(sobel_x.*local_img)));
                output(i,j)=sqrt(sum(sum(sobel_x.*local_img))^2+sum(sum(sobel_y.*local_img))^2);
            end
        end
    elseif strcmp(method,'prewitt')
          for i=2:m-1
            for j=2:n-1
                local_img=input_img(i-1:i+1, j-1:j+1);
                output(i,j)=sqrt(sum(sum(prewitt_x.*local_img))^2+sum(sum(prewitt_y.*local_img))^2);
            end
          end
    else
        errordlg('maybe you should input sobel or prewitt');
    end
else  %如果不輸入算子的名稱,默認使用roberts算子進行邊緣檢測
    for i=1:m-1
        for j=1:n-1
            output(i,j)=abs(input_img(i,j)-input_img(i+1,j+1))+ ...
                abs(input_img(i+1,j)-input_img(i,j+1));
        end
    end
end

output=imadjust(output);%使邊緣圖像更明顯
thresh=graythresh(output);%確定二值化閾值
output=bwmorph(im2bw(output,thresh),'thin',inf);%強化細節(jié)
end

代碼效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 基于python解線性矩陣方程(numpy中的matrix類)

    基于python解線性矩陣方程(numpy中的matrix類)

    這篇文章主要介紹了基于python解線性矩陣方程(numpy中的matrix類),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Python批量將csv文件轉化成xml文件的實例

    Python批量將csv文件轉化成xml文件的實例

    將 csv 格式轉換成xml格式有許多方法,可以用數(shù)據(jù)庫的方式,也有許多軟件可以將 csv 轉換成xml。但是比較麻煩,本文利用 Python 一鍵批量將 csv 文件轉化成 xml 文件。
    2021-05-05
  • Python正則表達式匹配ip地址實例

    Python正則表達式匹配ip地址實例

    這篇文章主要介紹了Python正則表達式匹配ip地址實例,通過簡單的實例講述了re模塊的用法,該實例非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • Python使用docx模塊編輯Word文檔

    Python使用docx模塊編輯Word文檔

    docx提供了一組功能豐富的函數(shù)和方法,用于創(chuàng)建、修改和讀取Word文檔,Python可以用它對word文檔進行大批量的編輯,下面小編就來通過一些示例為大家好好講講吧
    2023-07-07
  • Python實現(xiàn)隱馬爾可夫模型的前向后向算法的示例代碼

    Python實現(xiàn)隱馬爾可夫模型的前向后向算法的示例代碼

    這篇文章主要介紹了Python實現(xiàn)隱馬爾可夫模型的前向后向算法,本文通過實例代碼給大家講解的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • python回調函數(shù)的使用方法

    python回調函數(shù)的使用方法

    在計算機程序設計中,回調函數(shù),或簡稱回調(Callback),是指通過函數(shù)參數(shù)傳遞到其它代碼的,某一塊可執(zhí)行代碼的引用。這一設計允許了底層代碼調用在高層定義的子程序
    2014-01-01
  • Pandas缺失值填充 df.fillna()的實現(xiàn)

    Pandas缺失值填充 df.fillna()的實現(xiàn)

    本文主要介紹了Pandas缺失值填充 df.fillna()的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 全面了解python字符串和字典

    全面了解python字符串和字典

    下面小編就為大家?guī)硪黄媪私鈖ython字符串和字典。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • python range實例用法分享

    python range實例用法分享

    在本篇文章里小編給大家整理了關于python range實例用法,有需要的朋友們可以學習參考下
    2020-02-02
  • python namedtuple函數(shù)的使用

    python namedtuple函數(shù)的使用

    今天介紹collections里面的一個好用的小函數(shù): namedtuple函數(shù)(不創(chuàng)類而可以擁有類的便利),例如可以使用object.attribute
    2021-06-06

最新評論