亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        模糊C均值聚類圖像分割算法的C++實現(xiàn)

        2017-12-12 00:26:13游繼安
        湖北工程學(xué)院學(xué)報 2017年6期
        關(guān)鍵詞:彩色圖像均值灰度

        劉 衣,游繼安

        (湖北工程學(xué)院 新技術(shù)學(xué)院,湖北 孝感 432000)

        模糊C均值聚類圖像分割算法的C++實現(xiàn)

        劉 衣,游繼安

        (湖北工程學(xué)院 新技術(shù)學(xué)院,湖北 孝感 432000)

        利用C++語言和OPENCV仿真工具,實現(xiàn)了模糊C均值聚類算法的圖像分割。回顧了模糊C均值聚類算法的原理,詳細(xì)說明了如何將聚類算法和圖像分割進(jìn)行關(guān)聯(lián)。描述了整個仿真的每一個函數(shù)的算法原理和流程,對比分析了不同圖像分割的實驗結(jié)果,最后探討了模糊C均值聚類算法需要改進(jìn)的一些問題。

        C++;OPENCV;模糊C均值;聚類;圖像分割

        圖像分割是目標(biāo)跟蹤、車輛自動駕駛等技術(shù)的基礎(chǔ),是圖像處理技術(shù)的一個研究熱點。目前圖像分割問題沒有一種普遍適用的求解算法,一般只能針對不同領(lǐng)域中的問題設(shè)計不同的算法[1]。圖像分割可分為基于層次的分割和基于塊的分割,基于塊的分割方法又可分為基于區(qū)域的分割和基于邊緣或邊界的分割。本文研究基于區(qū)域分割的圖像分割問題[1]。另外,模糊聚類廣泛應(yīng)用在遠(yuǎn)程感知、醫(yī)學(xué)圖片等領(lǐng)域。在圖像分割中,模糊C均值聚類算法是一種應(yīng)用最廣泛的聚類算法,常用于數(shù)據(jù)挖掘、機器視覺等領(lǐng)域。傳統(tǒng)的模糊C均值算法對大多數(shù)無噪聲圖片的分割很有效[2]。于是,很多方法都以模糊C均值算法為基礎(chǔ),對其加以改進(jìn)以適應(yīng)某些圖像分割,如利用遷移學(xué)習(xí)改進(jìn)的知識杠桿遷移模糊C均值(KL-TFCM)算法[3],等等。

        本文利用C++語言和OPENCV工具,在VS2015平臺上進(jìn)行了編程,分別從初始聚類數(shù)、灰度和彩色維度探討了實驗結(jié)果。

        1 模糊C均值(FCM)簡介

        FCM聚類算法的目標(biāo)函數(shù)可描述為式(1):

        (1)

        (2)

        (3)

        為了便于編程,對式(2)進(jìn)行變換可得式(4):

        (4)

        2 FCM與圖像分割的關(guān)聯(lián)

        (1)設(shè)置目標(biāo)函數(shù)精度ε,模糊指數(shù)m(通常取值為2),最大迭代次數(shù)maxTimes;

        (2)初始化模糊聚類中心P;

        (3)由公式(4)和(3)分別更新隸屬度矩陣和聚類中心,若樣本點和聚類中心的距離為0,則將該點與相對應(yīng)類的隸屬度值設(shè)為1;

        (4)計算每個樣本點到每個類的聚類中心的距離,并按照公式(1)計算目標(biāo)函數(shù)值J;

        (5)若達(dá)到最大迭代次數(shù)或前后兩次J的絕對值差小于ε,則停止計算,否則轉(zhuǎn)到第(3)步。

        (6)將樣本點劃分為隸屬度最大的那一類。

        算法流程圖如下:

        圖1 算法流程圖

        3 程序的實現(xiàn)

        頭文件的定義。利用C++語言,在頭文件里針對灰度圖像和彩色圖像定義兩種類型的結(jié)構(gòu)體數(shù)據(jù),分別為GrayClusterData和ColorClusterData。在GrayClusterData定義變量size_t x,size_t y, uchar pixelVal,分別存儲像素點的x,y坐標(biāo)值和灰度值。在ColorClusterData里面定義size_t x, size_t y, uchar RGBValue[3],分別存儲像素點的x,y坐標(biāo)值和彩色圖像像素點的B、G、R三個值。

        在頭文件里還定義一個ClusterMethod類,里面的成員變量有IplImage*mpOrgImage,IplImage*mpGrayImage,size_tmpClusterResult,double*mpCenters,分別用來存儲原始圖像,灰度圖像,聚類結(jié)果和聚類中心。size_t mSampleNum為樣本數(shù),size_t mClusterNum為聚類數(shù),size_t mFeatureNum為每個樣本的特征數(shù),size_t mImageWidth為原始圖像寬,size_t mImageHeight為原始圖像高,CvRNG mRNG為隨機數(shù)種子,可用cvRNG(cvGetTickCount()) 進(jìn)行初始化,GrayClusterData*mpGraySampleData用來存儲灰度圖像的樣本總數(shù)據(jù),ColorClusterData*mpColorSampleData用來存儲彩色圖像的樣本總數(shù)據(jù)。所有的成員變量都是private類型。

        public成員函數(shù)有void GetClusteredImage(IplImage*pOrginalImage, IplImage*pClusteredImage, size_t clusterNum),用于傳輸原圖像pOrginalImage,獲取分割后的圖像pClusteredImage,值得注意的是,pOrginalImage和pClusteredImage都需要由外界去開辟圖像空間。

        Private成員函數(shù)有void Initialize(IplImage*pOrginalImage, size_t clusterNum),用來初始化各種變量,pOrginalImage為原圖像,clusterNum為聚類數(shù)。void FuzzyCMeans(int m_value),模糊C均值算法的入口,m_value的值一般為2。void FuzzyCInitialize(double*pMemberShip, double*pDistances)為聚類的初始化,pMemberShip存儲總樣本隸屬度,pDistances存儲每一個樣本點到每一個聚類中心點的距離平方值。void FuzzyCCalculate(double*pMemberShip, double*pDistances, int m_value)用來計算模糊C均值聚類,void ClusteredResult(double*pMemberShip)用來計算聚類結(jié)果并分類,將每一個樣本點歸為隸屬度最大的那一類。

        成員函數(shù)間的調(diào)用。GetClusteredImage函數(shù)是僅有的外部接口,main函數(shù)通過調(diào)用它,傳遞原圖像數(shù)據(jù)和獲取分割后的圖像能。該函數(shù)在內(nèi)部依次調(diào)用Initialize和FuzzyCMeans,最后將pClusteredImage中每個像素點的值,按照它屬于的類,依次進(jìn)行賦值,這樣整幅圖像就被分成了c個類的值了。

        FuzzyCMeans函數(shù)按順序分別調(diào)用FuzzyCInitialize、FuzzyCCalculate和ClusteredResult三個函數(shù)。調(diào)用的結(jié)構(gòu)見圖2,按照1-6的順序執(zhí)行。首先在main函數(shù)中定義原圖pOrginalImage,分割后的圖像pClusteredImage,和聚類數(shù)clusterNum,然后將3個參數(shù)傳遞給GetClusteredImage,最后用pClusteredImage存儲分割后的圖像。

        圖2 成員函數(shù)調(diào)用流程

        數(shù)據(jù)的賦值。大部分?jǐn)?shù)據(jù)的賦值工作由Initialize成員函數(shù)完成,根據(jù)外部傳遞進(jìn)來的圖像數(shù)據(jù)進(jìn)行賦值。在Initialize函數(shù)中開辟mpGraySampleData和mpColorSampleData空間,存儲原始灰度和彩色圖像的數(shù)據(jù)。

        模糊C均值聚類算法的實現(xiàn)。模糊C均值算法的實現(xiàn)由FuzzyCMeans函數(shù)完成,在該函數(shù)里,開辟了存儲總樣本隸屬度pMemberShip、樣本與聚類中心距離平方的集合pDistances、聚類中心點集合mpCenters和聚類結(jié)果集合mpClusterResult的空間。在調(diào)用完FuzzyCInitialize、FuzzyCCalculate和ClusteredResult函數(shù)后,還需要負(fù)責(zé)釋放非成員變量pMemberShip和pDistances動態(tài)開辟的空間。

        模糊C聚類算法初始化與計算。聚類算法的初始化是通過FuzzyCInitialize實現(xiàn)的,其作用是初始化聚類中心和初始化樣本與聚類中心距離平方的集合(簡稱距離矩陣)。FCM算法的計算通過FuzzyCCalculate實現(xiàn),主要是計算隸屬度和聚類中心以及相鄰兩代目標(biāo)函數(shù)值的絕對差,根據(jù)公式(3)和公式(4),分別得出每次迭代更新的聚類中心和隸屬度,并求出聚類中心更新后的樣本點到每個聚類中心的距離矩陣。若前后兩次的目標(biāo)函數(shù)值小于允許誤差或運行次數(shù)超過最大迭代次數(shù),則終止計算,否則重新計算隸屬度、聚類中心和距離矩陣。

        聚類結(jié)果的計算。把每個樣本所屬類的值存儲到mpClusterResult中。該過程是通過ClusteredResult函數(shù)實現(xiàn)的,它將每個樣本點的隸屬度進(jìn)行比較,將隸屬度最大的類賦給該樣本,并存儲到mpClusterResult中。

        4 實驗結(jié)果

        本文采用兩幅彩色圖進(jìn)行對比實驗,原圖為圖3所示,其中Lena像素分別率為512*512,JLK Magenta像素分辨率是586*764。實驗電腦配置:CPUi7 7700HQ,內(nèi)存8G,win10 x64系統(tǒng),硬盤為固態(tài)硬盤128G。

        對于灰度圖像,采用模糊C均值聚類算法和分水嶺算法進(jìn)行對比研究;對于彩色圖像,僅采用模糊C均值聚類算法。

        4.1灰度圖像分割

        首先,對圖3中的Lena用模糊C均值聚類算法進(jìn)行圖像分割,以灰度像素值為樣本特征值,設(shè)置聚類數(shù)目分別為2和5,圖像分割的結(jié)果見圖4。

        Lena JLK Magenta圖3 原始圖像

        對JLK Magenta進(jìn)行灰度圖像分割的結(jié)果如圖5所示。

        聚類數(shù)為2 聚類數(shù)為5圖5 JLK Magenta灰度分割后的圖像

        將程序各運行10次可知,不同聚類數(shù)和分辨率的圖像分割時間不同,聚類數(shù)越多,運行時間越長;JLK Magenta圖像分割比Lena圖像分割的運行時間長。表1和表2分別記錄了Lena圖像分割和JLK Magenta圖像分割的運行時間和平均運行時間。

        表1 灰度Lena不同聚類數(shù)的運行時間(單位:秒)

        表2 灰度JLK Magenta不同聚類數(shù)的運行時間(單位:秒)

        再對Lena和JLK Magenta圖像分別用分水嶺算法進(jìn)行分割,結(jié)果如圖6所示。

        將圖4和圖6的Lena分析可得,圖4分割清晰準(zhǔn)確,區(qū)域劃分簡潔明朗,圖6的Lena中局部圖像區(qū)域劃分過多。圖4中,當(dāng)聚類數(shù)為2時,區(qū)域劃分更為簡潔,當(dāng)聚類數(shù)為5時,圖像分割更精細(xì)。

        將圖5和圖6的JLK Magenta做對比可知,圖5邊緣分割精確,當(dāng)聚類數(shù)為2時,整體分為兩大類,整個人體的輪廓清晰可見,但具體的細(xì)節(jié)不夠,如眼睛等;當(dāng)聚類數(shù)為5時,細(xì)節(jié)信息顯露得十分清楚。而圖6的JLK Magenta區(qū)域劃分不準(zhǔn)確,局部區(qū)域分割過多,細(xì)節(jié)信息偏少。

        4.2彩色圖像分割

        對圖3的兩幅圖像做彩色圖像分割,以R、G、B三個空間的像素值作為樣本的特征值,設(shè)置聚類數(shù)目分別為2和5,對Lena和JLK Magenta分別進(jìn)行圖像分割,其結(jié)果見圖7和圖8。

        Lena JLK Magenta 圖6 Lena分水嶺算法

        分別將程序運行10次,對于Lena的彩色和JLK Magenta的彩色圖像分割時間對比見表3和表4。

        表3 彩色Lena不同聚類數(shù)的運行時間(單位:秒)

        表4 彩色JLK Magenta不同聚類數(shù)的運行時間(單位:秒)

        5 實驗結(jié)論

        將表1和表3對比,表2和表4對比可以看出,同一張圖片,在相同聚類數(shù)的情況下,對灰度和彩色圖像進(jìn)行分割,運行時間差異很大,故一個樣本的特征數(shù)目越多,運行時間越長。將表1和表2對比,表3和表4對比可以看出,對于分辨率不一樣、其他情況相同的圖片,運行時間也是不同的,分辨率越大的,運行時間越長。單獨看表1、2、3、4,對于同一張圖片,聚類數(shù)不同,其他條件均相同的圖片,聚類數(shù)越多,所消耗的時間越長。上述圖像中當(dāng)聚類數(shù)為2時,切割后的圖像的信息顯得丟失不少,而當(dāng)聚類數(shù)為5時,運行的時間大幅增加,故在確定聚類數(shù)的時候需要有一個權(quán)衡。將圖4與圖5對比,圖6與圖7對比,可以看出,模糊C均值聚類算法的圖像分割效果比分水嶺算法要好很多,分水嶺算法在圖像局部區(qū)域過多分割,而且圖像邊緣也沒有模糊C均值聚類算法檢測的精確??傮w上看,對于無噪聲的圖片,模糊C均值算法要優(yōu)于分水嶺算法,但要達(dá)到實時圖像處理,還需要進(jìn)一步改進(jìn)算法。本文的程序運行時間較長,需要對模糊C均值算法進(jìn)行改進(jìn)和優(yōu)化。由于模糊C均值算法對含有噪聲的圖片很敏感,所以沒有詳細(xì)討論,如何抗噪,也是需要改進(jìn)的一個方向。另外,在運行程序前,需要人為根據(jù)實際圖片,憑經(jīng)驗確定分類數(shù)目,無法進(jìn)行自動確定分類數(shù),從而無法對圖像進(jìn)行自動分割。如何進(jìn)行自動確定圖像分類數(shù)也是以后需要改進(jìn)的一個方向。

        [1] Zaitoun N M, Aqel M J. Survey on Image Segmentation Techniques[J].Procedia Computer Science, 2015, 65(4):797-806.

        [2] Zhang M, Jiao L, Ma W, et al. Multi-objective evolutionary fuzzy clustering for image segmentation with MOEA/D[J].Applied Soft Computing, 2016(48): 621-637.

        [3] Qian P, Zhao K, Jiang Y, et al. Knowledge-leveraged transfer fuzzy C-Means for texture image segmentation with self-adaptive cluster prototype matching[J].Knowledge-Based Systems, 2017(130): 33-50.

        [4] 江銘炎,袁東風(fēng).人工蜂群算法及其應(yīng)用[M].北京: 科學(xué)出版社,2014:195-197.

        (責(zé)任編輯:熊文濤)

        TP391.41

        A

        2095-4824(2017)06-0091-06

        2017-09-05

        劉 衣(1986- ),男,湖北孝感人,湖北工程學(xué)院新技術(shù)學(xué)院助教,碩士。

        游繼安(1987- ),男,湖北孝感人,湖北工程學(xué)院新技術(shù)學(xué)院助教,碩士。

        猜你喜歡
        彩色圖像均值灰度
        采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過濾技術(shù)
        基于灰度拉伸的圖像水位識別方法研究
        基于FPGA的實時彩色圖像邊緣檢測
        電子制作(2019年16期)2019-09-27 09:34:46
        基于最大加權(quán)投影求解的彩色圖像灰度化對比度保留算法
        基于灰度線性建模的亞像素圖像抖動量計算
        均值不等式失效時的解決方法
        均值與方差在生活中的應(yīng)用
        基于顏色恒常性的彩色圖像分割方法
        關(guān)于均值有界變差函數(shù)的重要不等式
        對偶均值積分的Marcus-Lopes不等式
        无码熟妇人妻av在线c0930| 人人狠狠综合久久亚洲婷婷| 一区二区三区一片黄理论片| 国产肉体ⅹxxx137大胆| 中文有码亚洲制服av片| 亚洲中文字幕有综合久久| 无套内射无矿码免费看黄| 亚洲国产丝袜久久久精品一区二区 | 久久老子午夜精品无码怎么打| 精品嫩模福利一区二区蜜臀| 精品少妇一区一区三区| 狠狠精品久久久无码中文字幕| 国产丝袜美腿一区二区三区| 最新国产精品亚洲二区| 手机看片久久国产免费| 在线观看国产成人自拍视频| 一区二区丝袜美腿视频| 国产午夜精品久久久久免费视 | 99久久久无码国产精品试看| 亚洲爆乳无码精品aaa片蜜桃 | 亚洲av无码一区二区三区不卡| 色偷偷88888欧美精品久久久| 国产精品区一区二区三在线播放| 一区二区三区岛国av毛片| av天堂久久天堂av色综合 | 精品人妻无码一区二区色欲产成人| 欧美丰满熟妇xxxx性ppx人交| 美女被躁到高潮嗷嗷免费观看| 久久久久久一级毛片免费无遮挡| 和外国人做人爱视频| 又硬又粗进去好爽免费| 成人免费毛片立即播放| 亚洲欧美日韩精品高清| 亚洲av无码精品色午夜| 亚洲精品国精品久久99热| 91久久精品美女高潮喷白浆| 少妇脱了内裤让我添| 国产极品女主播国产区| 日本免费久久高清视频| 我和丰满老女人性销魂| 国产一区二区三区啪|