[Medical Image Processing] 2. GrayScale Histogram and Threshold-【Isodata Algorithm】
生活随笔
收集整理的這篇文章主要介紹了
[Medical Image Processing] 2. GrayScale Histogram and Threshold-【Isodata Algorithm】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Histogram:
圖像灰度分析。以及圖像二值化的基礎。
1.1特點:
丟失了所有的空間信息。(只給出了圖像中同灰度像素點的分布)
1.2灰度直方圖與圖像面積的關系:
對灰度直方圖進行積分即可。
1.3用途:
分析圖像中的灰度變化,最終可以幫助我們確定圖像二值化的最優值。
對于大多數灰度直方圖,具有雙峰性。一般稱為圖像的“前景”與圖像的“背景”。
2.Binary Operation(二值化算法)
Isodata Algorithm:
%Isodata Algorithm %對圖像進行二值化處理,尋找最優閾值 %算法流程: %step1:設定初始閾值T0; %step2:根據閾值進行分割得R1、R2,計算R1區域平均灰度值avg1,R2區域平均灰度值avg2; %step3:計算新的分割閾值T1=(avg1+avg2)/2; % 若|T0-T1|<e,執行step4,否則返回step2. %step4:輸出圖像 %%%%%%author:沈春旭 clc;clear all; I=imread('chunxu.jpg'); figure(1);imshow(I);%colorful II=rgb2gray(I);%colorful to gray figure(2);imhist(II); II=double(II); %%%%Binary Threshold%%%% [x,y]=size(II); Global_mean=mean(mean(II));%初始設定的分割閾值 T0=Global_mean; T1=0; while(abs(T0-T1)>0.01)T1=T0;%把最新的閾值送給T1方便分割sum_R0=0;count0=0;sum_R1=0;count1=0;for i=1:1:xfor j=1:1:yif( II(i,j)<=T1 ) count0=count0+1;sum_R0=sum_R0+II(i,j);endif ( II(i,j)>T1) count1=count1+1;sum_R1=sum_R1+II(i,j);endendendR0_mean=sum_R0/count0;R1_mean=sum_R1/count1; %新生成的閾值賦給T0,與上次的分割與上次的分割閾值作比較。T0=(R0_mean+R1_mean)/2;%生成新得分割閾值 end %利用T0進行圖像二值化處理 for i=1:1:xfor j=1:1:yif (II(i,j)>=T0) II(i,j)=255;endif (II(i,j)<T0) II(i,j)=0;endend end figure(3);imshow(II);algorithm result:
#Global_mean=109.2339
#better_Threshold=101.1197
總結
以上是生活随笔為你收集整理的[Medical Image Processing] 2. GrayScale Histogram and Threshold-【Isodata Algorithm】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【飞秋】关于结构体和结构体指针的P-IN
- 下一篇: [精华] 讨论 Setsockopt选项