基于大津閾值法和二值化與聯通區域標記進行圖像目標計數

1 建模

A.讀取圖像:

????????1.使用imread函數讀取圖像文件。

????????2.如果圖像是彩色的,通常需要先轉換為灰度圖像,因為大津閾值法通常應用于灰度圖像。

B.灰度化:

????????1.如果圖像是彩色的,使用rgb2gray函數將其轉換為灰度圖像。

????????2.灰度圖像只包含亮度信息,便于后續處理。

D.閾值分割:

????????1.使用大津閾值法(Otsu's method)計算全局閾值。

????????2.graythresh函數可以自動計算這個閾值。

????????3.使用imbinarize或邏輯運算(例如gray_image > threshold)將灰度圖像轉換為二值圖像。

E.連通區域標記:

????????1.使用bwlabel函數標記二值圖像中的連通區域。

????????2.這個函數會為每個獨立的連通區域分配一個唯一的標簽。

F.統計連通區域數量:

????????1.bwlabel函數在返回標記圖像的同時,也返回了連通區域的數量。

????????2.可以直接使用這個數量作為目標物體的計數。

G.可視化結果:

????????1.使用imshow函數顯示原始圖像、二值化圖像和標記后的圖像。

????????2.可以使用subplot函數將多個圖像放在同一個窗口中顯示。

????????3.可以使用label2rgb函數將標記圖像轉換為彩色圖像,以便于觀察不同的連通區域。

2 代碼

function segment_and_label_image(image_path)  % 讀取圖像  original_image = imread(image_path);  if size(original_image, 3) == 3  % 如果是彩色圖像,則轉換為灰度圖像  gray_image = rgb2gray(original_image);  else  gray_image = original_image;  end  % 使用大津閾值法計算閾值  threshold = graythresh(gray_image);  % 根據閾值對圖像進行二值化處理  binary_image = imbinarize(gray_image, threshold);  % 標記連通區域  [labeled_image, num_objects] = bwlabel(binary_image);  % 顯示原始圖像  subplot(2, 2, 1);  imshow(original_image);  title('原始圖像');  % 顯示二值化圖像  subplot(2, 2, 2);  imshow(binary_image);  title('二值化圖像');  % 顯示標記連通區域后的圖像  subplot(2, 2, 3);  imshow(label2rgb(labeled_image, 'jet', 'k', 'shuffle'));  title(['連通區域標記,共檢測到 ', num2str(num_objects), ' 個對象']); % 等待用戶按鍵,然后關閉所有圖像窗口  pause;  close all;  
end  segment_and_label_image('米粒.png'); % 替換為你的圖像路徑

3 運行結果

圖1?圖像目標計數結果

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

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

相關文章

《昇思25天學習打卡營第16天 | 昇思MindSpore基于MobileNetv2的垃圾分類》

16天 本節學習了垃圾分類代碼開發的方法。通過讀取本地圖像數據作為輸入,對圖像中的垃圾物體進行檢測,并且將檢測結果圖片保存到文件中。 MobileNet網絡是由Google團隊于2017年提出的專注于移動端、嵌入式或IoT設備的輕量級CNN網絡,相比于傳…

Excel顯示/隱藏批注按鈕為什么是灰色?

在excel中,經常使用批注來加強數據信息的提示,有時候會把很多的批注顯示出來,但是再想將它們隱藏起來,全選工作表后,“顯示/隱藏批注”按鈕是灰色的,不可用。 二、可操作方法 批注在excel、WPS表格中都是按…

【考研408計算機組成原理】微程序設計重要考點指令流水線考研真題+考點分析

蘇澤 “棄工從研”的路上很孤獨,于是我記下了些許筆記相伴,希望能夠幫助到大家 目錄 微指令的形成方式 微指令的地址形成方式 對應考題 題目:微指令的地址形成方式 - 斷定方式 解題思路: 答題: 分析考點&…

每日疑問,多線程場景,下面的代碼是否可以保證只執行一次

看著這個代碼的目的是只注冊一次sighandler,但是這個判定是否可以保證一次?但是根據代碼看,其實不會有關鍵區的讀寫,所以即使有同步問題,也不會產生什么特別的影響。所以代碼沒有問題,但是這是一個坑。 in…

Spring Boot中的分頁與排序實現

Spring Boot中的分頁與排序實現 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!在開發Web應用時,分頁和排序是常見的功能需求,特別是在處…

計算機體系結構和指令系統

1.計算機體系結構 - 五大部件 - 馮 諾依曼 計算機的特點 1.計算機有五大部件組成 2.指令和數據以同等地位存儲于存儲器,可按照地址訪問 3.指令和數據用二進制表示 4.指令由操作碼和地址碼組成 5。存儲程序 6.以計算器為中心(輸入、輸出設備與存儲器…

2024年【湖北省安全員-C證】新版試題及湖北省安全員-C證試題及解析

題庫來源:安全生產模擬考試一點通公眾號小程序 湖北省安全員-C證新版試題參考答案及湖北省安全員-C證考試試題解析是安全生產模擬考試一點通題庫老師及湖北省安全員-C證操作證已考過的學員匯總,相對有效幫助湖北省安全員-C證試題及解析學員順利通過考試…

WIN10系統自帶錄屏軟件怎么用?

WIN10系統自帶錄屏軟件怎么用? WIN10系統錄屏軟件怎么用? 第一步:WING 快捷打開系統自帶錄屏軟件,如下: 第二步:點擊錄屏軟件區域“開始錄制”按鈕進入屏幕錄制狀態,如下: 第三步…

基于SpringBoot的財務管理系統

根據您提供的論文內容和模板要求,以下是定制化的文章輸出: 你好呀,我是計算機學姐碼農小野!如果有相關需求,可以私信聯系我。 開發語言: Java 數據庫: MySQL 技術: SpringBoot…

某度,網盤免費加速,復活!

哈嘍,各位小伙伴們好,我是給大家帶來各類黑科技與前沿資訊的小武。 有小伙伴反饋之前如下夸克網盤腳本的加速方法失效,小武今天測試,依舊正常使用! 百度/迅雷/夸克,網盤免費加速,已破&#xf…

pytest測試框架pytest-cov插件生成代碼覆蓋率

Pytest提供了豐富的插件來擴展其功能,本章介紹下pytest-cov插件,用于生成測試覆蓋率報告,幫助開發者了解哪些部分的代碼被測試覆蓋,哪些部分還需要進一步的測試。 pytest-cov 支持多種報告格式,包括純文本、HTML、XML …

node中使用mysql

在nodeJs中mysq的基礎用法 mysql基礎 增刪改查 const mysql require(mysql)const connection mysql.createConnection({host: localhost, // 數據庫的IP地址port: 3306, // 端口號user: root, // 登錄數據庫的賬號password: 123456, // 登錄數據庫的密碼database: test, // 指…

JavaScript高級程序設計(第四版)--學習記錄之迭代器與生成器(下)

生成器 生成器是 ECMAScript 6 新增的一個極為靈活的結構,擁有在一個函數塊內暫停和恢復代碼執行的能力。 生成器基礎 生成器的形式是一個函數,函數名稱前面加一個星號表示它是一個生成器。 //生成器函數聲明 function* generatorFn(){} //生成器函數表…

網站頁面源碼,前端頁面的最基本組成形式,網頁到底是什么? 網站開發教程...

演示網站:gofly.v1kf.com -----------【視頻原文案】:現在給大家介紹一下網站上的頁面到底是什么。對于我們很多的普通用戶來說,他可能不知道一個網站一個頁面到底是什么東西。我們來從最基本的開始:如果想新建一個頁面&#xff0…

vue3+ts+vite項目中使用spreadjs,通過script標簽引入spreadjs可以提高打包速度

https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-js 右鍵另存這個官方的示例頁面可以下載全部js文件 https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html spread.html: <!DOCTYPE html> <html lang"zh">…

共識機制深度解析:PoW、PoS、DPoS和PBFT

區塊鏈的世界里&#xff0c;有一個非常重要的概念叫做“共識機制”。它就像是區塊鏈的心臟&#xff0c;保證大家在這條鏈上的信息是可靠的、不可篡改的。今天&#xff0c;我們就來通俗易懂地聊聊區塊鏈里的四大共識機制&#xff1a;工作量證明&#xff08;PoW&#xff09;、權益…

數據產品經理知識庫構建

概述 數據產品經理是企業中負責管理和推動數據產品的專業人員。他們利用數據來輔助決策&#xff0c;優化產品&#xff0c;提升用戶體驗。用STAR法則&#xff08;Situation, Task, Action, Result&#xff09;來介紹數據產品經理的角色&#xff0c;應該學習的數據產品&#…

Rust-11-錯誤處理

Rust 將錯誤分為兩大類&#xff1a;可恢復的&#xff08;recoverable&#xff09;和 不可恢復的&#xff08;unrecoverable&#xff09;錯誤。對于一個可恢復的錯誤&#xff0c;比如文件未找到的錯誤&#xff0c;我們很可能只想向用戶報告問題并重試操作。不可恢復的錯誤總是 b…

Labview_網絡流

網絡流的介紹 網絡流是一種易于配置、緊密集成的動態通信方法&#xff0c;用于將數據從一個應用程序傳輸到另一個應用程序&#xff0c;其吞吐量和延遲特性可與 TCP 相媲美。但是&#xff0c;與 TCP 不同的是&#xff0c;網絡流直接支持任意數據類型的傳輸&#xff0c;而無需先…

Java虛擬機調優技巧及性能監控

Java虛擬機調優技巧及性能監控 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 引言 Java虛擬機&#xff08;JVM&#xff09;作為Java程序的核心執行環境&…