1. 程式人生 > >Matlab實現影象閾值分割

Matlab實現影象閾值分割

使用matlab實現閾值分割,實現兩種方法,一是人工選擇閾值進行分割,而是自動選擇閾值進行分割。

操作步驟
1、 開啟Matlab內容自帶的coins.png影象。
2、 觀察它的直方圖。
3、 人工選定一個閾值,並進行分割。
4、 使用自動化閾值選定方法,進行分割。

根據直方圖顯示,此影象符合雙峰分佈的基本特徵,峰谷大概在120左右,所以人工選擇分割的閾值為120,在自動分割上採用Otsu的方法進行自動的影象閾值分割。

clc,clear
I=imread('coins.png');
imshow(I);
%輸出直方圖
figure;imhist(I);
%人工選定閾值進行分割,選擇閾值為120
[width,height]=size(I); T1=120; for i=1:width for j=1:height if(I(i,j)<T1) BW1(i,j)=0; else BW1(i,j)=1; end end end figure;imshow(BW1),title('人工閾值進行分割'); %自動選擇閾值 T2=graythresh(I); BW2=im2bw(I,T2);%Otus閾值進行分割 figure;imshow(BW2),title('Otus閾值進行分割'
);

這裡寫圖片描述

相關推薦

Matlab實現影象分割

使用matlab實現閾值分割,實現兩種方法,一是人工選擇閾值進行分割,而是自動選擇閾值進行分割。 操作步驟 1、 開啟Matlab內容自帶的coins.png影象。 2、 觀察它的直方圖。

影象分割:最大熵法

    影象最大熵閾值分割的原理:使選擇的閾值分割影象目標區域、背景區域兩部分灰度統計的資訊量為最大。     具體描述: 1. 根據資訊熵定義,計算原始影象的資訊熵H0,選擇最大、最小灰度灰度的均值為初始閾值T0; 2. 根據T0將影象分割為G1和G2兩個區域,均值分

灰度影象分割常見方法總結及VC實現

      在影象處理領域,二值影象運算量小,並且能夠體現影象的關鍵特徵,因此被廣泛使用。將灰度影象變為二值影象的常用方法是選定閾值,然後將待處理影象的每個畫素點進行單點處理,即將其灰度值與所設定的門限進行比對,從而得到二值化的黑白圖。這樣一種方式因為其直觀性以及易於實現,

matlab影象處理--預迭代分割

預迭代閾值分割:影象分割關鍵在於找到最佳閾值,通過迭代方式逼近最佳閾值,是影象分割的有效辦法。 演算法思路:     例如:1,99      取2,50,98都能分割1和99,但是50與1和99差別最大,為最佳閾值。可以看出兩個數的中間

matlab影象處理--Otsu分割

Otsu演算法:取一個最優閾值把原影象分為前景色(A部分)與背景色(B部分),兩部分的類間方差越大,說明兩部分差別越大,便能有效的分割影象。所以該演算法最關鍵的是找到最優閾值。 方差:    例如  1,2,3,4,5      

影象化方法及適用場景分析(OTSU Trangle 自適應分割

影象二值化 應用場景 二值影象定義 閾值獲取的方法 手動閾值法 自動閾值法 灰度均值法 基於直方圖均值法 OTSU Triangle

matlab-視覺化影象選擇GUI工具

話不多說,先看圖,這是匯入一張圖後執行的效果。 在此函式中,左圖是灰度圖加上colorBar後的彩色效果圖,右圖是二值化後的圖,下面是可調節閾值的灰度直方圖。 左上角的按鈕是迴歸初始狀態,右上角的按鈕是結束閾值調整並記錄該閾值和所得的二值化影象。 該函式先計算一個自適應閾值,若你不滿意可以拉動灰度直

影象處理-分割方法彙總

文章目錄 基本概念 類別劃分 基本概念 影象閾值分割是影象處理中最基本也是最常用的方法之一,主要用於將影象中的畫素點劃分為兩個或者多個類別,從而得到便於處理的目標物件。 類別劃分 按照閾值作用範圍分:全域性閾值分割

影象處理演算法2——Otsu最佳分割

    Otsu法是1979年由日本大津提出的。該方法在類間方差最大的情況下是最佳的,即統計鑑別分析中所用的度量。Otsu方法有一個重要的特性,就是它完全以在一幅影象的直方圖上執行計算為基礎,而直方圖是很容易得到的一維陣列。     具體的公式推理及公式細節就不說了,詳見 Conzalez 那本書,我是第三

基於Otsu演算法的影象自適應分割

在影象處理實踐中,將灰度圖轉化為二值圖是非常常見的一種預處理手段。在Matlab中,可以使用函式BW = im2bw(I, level)來將一幅灰度圖 I,轉化為二值圖。其中,引數level是一個介於0

python數字影象處理(11):影象自動分割

影象閾值分割是一種廣泛應用的分割技術,利用影象中要提取的目標區域與其背景在灰度特性上的差異,把影象看作具有不同灰度級的兩類區域(目標區域和背景區域)的組合,選取一個比較合理的閾值,以確定影象中每個畫素點應該屬於目標區域還是背景區域,從而產生相應的二值影象。 在skimage庫中,閾值分割的功能是放在fi

OpenCV程式設計:最大熵分割演算法實現(程式碼可執行)

        將資訊理論中的 shannon 熵概念用於影象分割, 其依據是使得影象中目標與背景分佈的資訊量最大,即通過測量影象灰度直方圖的熵,找出最佳閾值。根據 shannon 熵的概念,對於灰度範圍為 0,1,2,…,L-1 的影象,其直方圖的熵定義為(僅僅是定義)

影象分割(迭代法選擇

迭代法閾值選擇演算法是對雙峰法的改進,他首先選擇一個近似的閾值T,將影象分割成兩個部分,R1和R2,計算出區域R1和R2的均值u1和u2,再選擇新的 閾值T=(u1+u2)/2; 重複上面的過程,知道u1和u2不在變化為止, 詳細過程的程式碼: <span s

基於OpenCV和C++實現最大分割演算法

程式碼如下:: /********************************************************************************************************** *檔案說明: * 基於Ope

python+OpenCV影象處理(五)影象分割

影象的閾值處理      一幅影象包括目標物體、背景還有噪聲,要想從多值的數字影象中直接提取出目標物體,常用的方法就是設定一個閾值T,用T將影象的資料分成兩部分:大於T的畫素群和小於T的畫素群。這是研究灰度變換的最特殊的方法,稱為影象的二值化(Binarization)。 

MATLAB影象濾波

下面來介紹一下影象的中值濾波方法: 1、首先開啟MATLAB軟體,在其主介面的編輯器中寫入下列程式碼: I=imread('G:\MATLAB\bm.bmp');      %讀取儲存路徑下的圖片 I=rgb2gray(I); J=imnoise(I,'salt

threshold動態分割

dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 對於一些目標與背景的閾值對比不明顯的影象,需要用到動態閾值分割

【翻譯:OpenCV-Python教程】影象

⚠️這個系列是自己瞎翻的,文法很醜,主要靠意會,跳著跳著撿重要的部分翻,翻錯了不負責,就這樣哈。 ⚠️基於3.4.3,Image Thresholding,附原文。 目標  在本教程,你會學到簡單的閾值化、自適應閾值化、大津閾值法等等。

otsu C++分割

    簡單的說,這種演算法假設一副影象由前景色和背景色組成,通過統計學的方法來選取一個閾值,使得這個閾值可以將前景色和背景色儘可能的分開。 或者更準確的說是在某種判據下最優。與數理統計領域的 fisher 線性判別演算法其實是等價的。 otsu演算法中這個判據就是最大類間方

opencv分割

cv::threshold() double cv::threshold( cv::InputArray src, // 輸入影象 cv::OutputArray dst, // 輸出影象 double thresh, // 閾值