matlab 邊緣檢測不閉合,Matlab多種圖像邊緣檢測方法

1、用Prewitt算子檢測圖像的邊緣

I = imread('bacteria.BMP');

BW1 = edge(I,'prewitt',0.04);???????????? % 0.04為梯度閾值

figure(1);

imshow(I);

figure(2);

imshow(BW1);

2、用不同σ值的LoG算子檢測圖像的邊緣

I = imread('bacteria.BMP');

BW1 = edge(I,'log',0.003); % σ=2

imshow(BW1);title('σ=2')

BW1 = edge(I,'log',0.003,3); % σ=3

figure, imshow(BW1);title('σ=3')

3、用Canny算子檢測圖像的邊緣

I = imread('bacteria.BMP');

imshow(I);

BW1 = edge(I,'canny',0.2);

figure,imshow(BW1);

4、圖像的閾值分割

I=imread('blood1.tif');

imhist(I);????????? % 觀察灰度直方圖, 灰度140處有谷,確定閾值T=140

I1=im2bw(I,140/255); % im2bw函數需要將灰度值轉換到[0,1]范圍內

figure,imshow(I1);

5、用水線閾值法分割圖像

afm = imread('afmsurf.tif');figure, imshow(afm);

se = strel('disk', 15);

Itop = imtophat(afm, se); % 高帽變換

Ibot = imbothat(afm, se); % 低帽變換

figure, imshow(Itop, []);?? % 高帽變換,體現原始圖像的灰度峰值

figure, imshow(Ibot, []);?? % 低帽變換,體現原始圖像的灰度谷值

Ienhance = imsubtract(imadd(Itop, afm), Ibot);% 高帽圖像與低帽圖像相減,增強圖像

figure, imshow(Ienhance);

Iec = imcomplement(Ienhance); % 進一步增強圖像

Iemin = imextendedmin(Iec, 20); figure,imshow(Iemin) % 搜索Iec中的谷值

Iimpose = imimposemin(Iec, Iemin);

wat = watershed(Iimpose); % 分水嶺分割

rgb = label2rgb(wat); figure, imshow(rgb); % 用不同的顏色表示分割出的不同區域

6、對矩陣進行四叉樹分解

I = [ 1???? 1???? 1???? 1???? 2???? 3???? 6???? 6

1???? 1???? 2???? 1???? 4???? 5???? 6???? 8

1???? 1???? 1???? 1??? 10??? 15???? 7???? 7

1???? 1???? 1???? 1??? 20??? 25???? 7???? 7

20??? 22??? 20??? 22???? 1???? 2???? 3???? 4

20??? 22??? 22??? 20???? 5???? 6???? 7???? 8

20??? 22??? 20??? 20???? 9??? 10??? 11??? 12

22??? 22??? 20??? 20??? 13??? 14??? 15??? 16];

S = qtdecomp(I,5);

full(S)

7、將圖像分為文字和非文字的兩個類別

I=imread('4-11.jpg');

I1=I(:,:,1);

I2=I(:,:,2);

I3=I(:,:,3);

[y,x,z]=size(I);

d1=zeros(y,x);

d2=d1;

myI=double(I);

I0=zeros(y,x);

for i=1:x

for j=1:y

%歐式聚類

d1(j,i)=sqrt((myI(j,i,1)-180)^2+(myI(j,i,2)-180)^2+(myI(j,i,3)-180)^2);

d2(j,i)=sqrt((myI(j,i,1)-200)^2+(myI(j,i,2)-200)^2+(myI(j,i,3)-200)^2);

if (d1(j,i)>=d2(j,i))

I0(j,i)=1;

end

end

end

figure(1);

imshow(I);

% 顯示RGB空間的灰度直方圖,確定兩個聚類中心(180,180,180)和(200,200,200)

figure(2);

subplot(1,3,1);

imhist(I1);

subplot(1,3,2);

imhist(I2);

subplot(1,3,3);

imhist(I3);

figure(4);

imshow(I0);

8、形態學梯度檢測二值圖像的邊緣

I=imread('wrod213.bmp');

imshow(I);

I=~I;??????? % 腐蝕運算對灰度值為1的進行

figure, imshow(I);

SE=strel('square',3); % 定義3×3腐蝕結構元素

J=imerode(~I,SE);

BW=(~I)-J;??????? % 檢測邊緣

figure,imshow(BW);

9、形態學實例——從PCB圖像中刪除所有電流線,僅保留芯片對象

I=imread('circbw.tif');

imshow(I);

SE=strel('rectangle',[40 30]); % 結構定義

J=imopen(I,SE);??????????? % 開啟運算

figure,imshow(J);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281685.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281685.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281685.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實現CSS在線美化(格式化)、壓縮、加密、解密、混淆工具-toolfk程序員工具網

本文要推薦的[ToolFk]是一款程序員經常使用的線上免費測試工具箱,ToolFk 特色是專注于程序員日常的開發工具,不用安裝任何軟件,只要把內容貼上按一個執行按鈕,就能獲取到想要的內容結果。ToolFk還支持 BarCode條形碼在線生成、 QueryList采集…

只是他給的實在太多了!

工作幾年后,總是會問自己一個問題,工作的意義是什么?這個如果要在網絡上尋找答案,那一定是多如牛毛,每一個人都有一套自己的看法。在一開始出入社會工作之時,我并沒有意識到這個問題,更沒有思考…

[ci]jenkins server啟動,通過jnlp的方式啟動slave(容器模式)

jenkins server啟動,通過jnlp的方式啟動slave. java -jar jenkins.jar 配置jnlp端口--全局安全 配置云 配置項目 執行成功 轉載于:https://www.cnblogs.com/iiiiher/p/7978831.html

Oracle 中UNDO與REDO的差別具體解釋

一 為了更清楚的看出2者差別,請看下表: UNDO REDO Record ofHow to undo a changeHow to reproduce a changeUsed forRollback, Read-ConsistencyRolling forward DB ChangesStored …

php實現文件留言,PHP文件操作及實例:留言板

一、文件操作函數1.創建文件:touch(./xxx.php);bool touch ( string $filename [, int $time time() [, int $atime ]] )2.復制文件:copy(./xxx.php,./yyy.php);3.移動或重命名:rename(./xxx.php,./yyy.php);4.刪除文件:unlink(.…

WPF-11 路由事件之一

什么是路由事件?我們從兩個維度來理解路由事件:功能的角度來看,路由事件是一種事件類型,不僅僅可以在事件源上處理事件響應,還可以在元素樹的多個偵聽器上處理事件響應(事件偵聽器是附加和調用事件處理程序的元素。事件…

個人總結的一個中高級Java開發工程師或架構師需要掌握的一些技能...

近三年,其實都是在做一個項目,項目是一個大型的多節點部署的項目,做了好幾個版本,中間用到了很多技術和框架, 也用了一些管理工具和敏捷實踐。我這里不是來說項目的,因為最近看了一些招聘信息,結…

Android 進程常駐(5)----開機廣播的簡單守護以及總結

這是一個輕量級的庫,配置幾行代碼。就能夠實如今android上實現進程常駐,也就是在系統強殺下,以及360獲取root權限下。clean master獲取root權限下都無法殺死進程 支持系統2.3到6.0 支持大部分設備,包含三星。華為。oppo&#xff0…

[k8s]metricbeat的kubernetes模塊kube-metric模塊

正確姿勢啟動metricbeat metricbeat.modules: - module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: [.*]cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: &q…

如何為 Task 添加超時功能

前言假設有如下代碼,功能是首先從緩存獲取數據,如果沒有命中緩存,則直接從數據庫獲取:var data await GetFromCache(); if (data is null) {data await GetFromDB(); }對于獲取緩存數據,我們需要限制一下GetFromCach…

php 隨機指定位數,php生成一個可選位數的隨機碼

echo coding(6);function coding($num){$str_arr array(‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘…

Animate與transform的使用

Animate是用css給前端加載動畫的效果&#xff1a; 網址&#xff1a;https://daneden.github.io/animate.css/ <!DOCTYPE html> <html lang"en"> <head><link rel"stylesheet" href"static/css/Animate.css"><meta ch…

angular中的cookies與cookieStore區別

設置cookie用put()方法: $cookies.put(key, value[, options]); $cookieStore.put(key, value); 例如設置一個cookie&#xff0c;名為“userName”&#xff0c;值為“yangmin”&#xff1a; //使用$cookies設置cookie $cookies.put(userName, yangmin); //使用$cookieStore設置…

ASP.NET Core 6框架揭秘實例演示[29]:搭建文件服務器

通過HTTP請求獲取的Web資源很多都來源于存儲在服務器磁盤上的靜態文件。對于ASP.NET應用來說&#xff0c;如果將靜態文件存儲到約定的目錄下&#xff0c;絕大部分文件類型都是可以通過Web的形式對外發布的。“Microsoft.AspNetCore.StaticFiles” 這個NuGet包中提供了三個用來處…

js 棧(進制轉換)

<!DOCTYPE html>Documentposted 2017-12-07 19:33 mysure 閱讀(...) 評論(...) 編輯 收藏 刷新評論刷新頁面返回頂部轉載于:https://www.cnblogs.com/ar13/p/8000718.html

流程展示 php,js實現動態的流程進度展示條

這次給大家帶來js實現動態的流程進度展示條&#xff0c;js實現動態流程進度展示條的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。一、設計思路分為以下幾步(僅供參考)【豎線線】這個采用ul的list標簽制作&#xff0c;保證了可隨時添加&#xff0c;以…

【我們一起寫框架】C#的AOP框架

原文:【我們一起寫框架】C#的AOP框架前言 AOP&#xff0c;大家都是聽過的&#xff0c;它是一種面向切面的設計模式。 不過AOP雖然是被稱為設計模式&#xff0c;但我們應該很少能看到AOP設計的框架。為什么呢&#xff1f; 因為&#xff0c;AOP單獨設計的框架幾乎是無法使用的。普…

新浪微博授權認證過程

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、授權認證 1、請求用戶授權Token URL&#xff1a; https://api.weibo.com/oauth2/authorize HTTP請求方式:GET/POST 請求參數 必選 類型及范圍 說明 client_id true string 申請應用時分配的AppKey。 redire…

VisualStudio 使用 FastTunnel 輔助搭建遠程調試環境

有時候需要遠程調試一些用戶問題&#xff0c;期望能使用本機的 Visual Studio 開發環境&#xff0c;調試遠程的用戶的設備上的應用。這時會遇到的一個問題是如何讓本機的 Visual Studio 可以連接上遠程的用戶的設備&#xff0c;從而進行調試。本文將告訴大家如何采用 FastTunne…

深入理解null的原理

--null的原理 --oracle一直將null和空字符串’’<長度為0>同等對待<如’’ is null是true,’’null為false,如果聲明a varchar2:’’,那么a is null為true,a’’為false>--1.null的運算 --算術表達式和null 運算總為null,實際上所有的操作符除了||連接操作符外&…