Density Based Fuzzy Thresholding for Image Segmentation-基于密度的圖像二值化

前言

之前處理圖像二值化時使用的是經典的Otsu算法,這次要求使用Fuzzy Density Model去做一個圖像二值化處理,網上參考文檔除了作者的論文,幾乎為零,可參考代碼都沒有。所以讀完論文后特地記錄一下。
先聲明:這篇論文還沒有完全理解吸收,記錄自己學習過程,如果有誤,歡迎交流

論文簡介

一般圖像二值化的處理是對圖像灰度化后,處理其直方圖,取其中的一個點作為threshold,以此為界,將圖片中灰度小于該點的值、大于該點的值分成兩部分。

Fuzzy Set Theory

作者先介紹了一個稱作Fuzzy Set的理論。令X={X1,X2....Xn},函數μ,它將X中的每個元素映射到[0,1]區間上,即對于X中元素Xi,有: 0<=μ(Xi)<=1,令A={( Xi , μ(Xi) )},A即為X上的Fuzzy Set。相當于對于X中的每個元素給予了一個0-1的權重。這里的μ特別地被稱為membership function。

Fuzzy Set Model

何為圖像密度?以下圖為例,假設點距離圓心越近,則擁有越高的權重,那么我們可以得出(a)圖中點權重之和比上以r為半徑的圓面積,大于,(b)圖中點權重之后比上以r為半徑的圓面積


論文里提到了三個membership function,分別為

  • Zadeh’s S-membership function


  • Gamma membership function


  • Gaussian membership function


這里引入fdm(r,p)函數,用于計算fuzzy density,r為計算的圖像區域,p為區域內的點。fdm計算結果越高,則相似度越大。

Threshold Selection Method

對于圖像的直方圖有明、暗兩部分,對于Object(亮部),顯然有灰度越小,越暗,權重越低,對于Background則反之,所以如果我們分別選取灰度圖中最大、最小作為明暗中心,做出他們的fdm函數,大致如圖



交界處即為所需要的threshold。

The Rest

論文剩余部分對左右兩個初始區域、以及threshold的適當調整做了更近一步探討,這里暫時不記錄了(主要是沒有看大明白。。。),有興趣讀者可以查看作者原論文

實踐

Lang:Python
Package:PIL

#  Created by william wei on 17/1/7.
#  Copyright ? 2017年. All rights reserved.

import PIL
import math


from PIL import Image

Xmin=0
Xmax=0
hist = []

def membership_function(x):
    b = (Xmin+Xmax)/2
    x = x*1.0
    if x <= Xmin:
        return 0
    if x>Xmin and x<=b:
        return 2*math.pow( (x-Xmin)/(Xmax-Xmin), 2 )
    if x>b and x<Xmax:
        return 1-2*math.pow( (x-Xmax)/(Xmax-Xmin), 2 )
    if x>=Xmax:
        return 1
    return 0

def fdm(x,y,inverse=0):
    global Xmin,Xmax
    result = 0
    num = 0
    for i in xrange(x,y):
        num = num+hist[i]
        if inverse==1:
            result = result+hist[i]*membership_function(Xmax-(i-Xmin))
        else:
            result = result+hist[i]*(membership_function(i))

    return result/num


if __name__ == "__main__":

    im=Image.open('cherry.png')
    im = im.convert('L')
    hist = im.histogram()

    threshold = 0

    for i in xrange(0,256):
        if hist[i] > 0:
            Xmin = i
            break;
        
    for i in xrange(0,256):
        if hist[255-i] > 0:
            Xmax = 255-i
            break;

    for x in xrange(Xmin+1,Xmax):
        left = fdm(Xmin,x,1)
        right = fdm(x,Xmax)

        if left<right and threshold == 0:
            threshold = x
            print threshold


    height,width = im.size
    bkg = im.convert('L')
    obj = im.convert('L')


    for x in xrange(0,height):
        for y in xrange(0,width):
            pixel = im.getpixel((x,y))
            print (threshold)
            if pixel<threshold :
                obj.putpixel((x,y),0)
            else:
                bkg.putpixel((x,y),0)

    bkg.save('bkg.png') 
    obj.save('obj.png')

效果如圖:

  • 原圖


  • Object


  • Background


再說點

效果說實話,確實不是很好,比Otsu差不少,不過這倒不是作者的問題,應該是把論文剩余部分讀完的原因吧,姑且先這樣,后面有時間再回來研究一下。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,048評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,414評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,169評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,722評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,465評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,823評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,813評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,000評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,554評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,295評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,513評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,722評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,125評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,430評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,237評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,482評論 2 379

推薦閱讀更多精彩內容

  • 二值化是圖像分割的一種方法。在二值化圖象的時候把大于某個臨界灰度值的像素灰度設為灰度極大值,把小于這個值的像素灰度...
    木夜溯閱讀 13,117評論 0 10
  • 本章介紹了基于elastix的基本配準概念。 更高級的配準主題將在第6章中討論。圖像配準是醫學影像領域的重要工具。...
    peterpan_hai閱讀 9,977評論 1 10
  • 前言: 以斯坦福cs231n課程的python編程任務為主線,展開對該課程主要內容的理解和部分數學推導。該課程的學...
    Deepool閱讀 49,321評論 33 88
  • 世上排名第一的殺手之王代號“曼珠沙華”卻只有14歲,性格:笑面虎,真名:珊岸華,5歲時開朗,活潑,只有她自己知道那...
    彼岸花之絕望的愛閱讀 364評論 0 0
  • 傳說中的三葉草也叫苜蓿草 金花菜原名,屬豆科植物。見載于陶宏景《名醫別錄》。嫩莖葉,又名黃花苜蓿,刺苜蓿、草頭。莖...
    田田圈Tina閱讀 3,391評論 2 5