圖像分割演算法
㈠ 圖像分割演算法分為幾類
從學術角度講圖像分割主要分成3大類,一是基於邊緣的,二是基於區域的,三是基於紋理的。由於基於紋理的也可以看成是基於區域的,所以有些專家也把分割方法分成基於邊緣和基於區域兩大類。
選擇演算法的時候主要參考你要分割的圖像樣本的特點。
如果圖像的邊界特別分明,比如綠葉和紅花,在邊界處紅綠明顯不同,可以精確提取到邊界,這時候用基於邊緣的方法就可行。但如果是像醫學圖像一樣,輪廓不是特別明顯,比如心臟圖像,左心房和左心室顏色比較接近,它們之間的隔膜僅僅是顏色比它們深一些,但是色彩上來說很接近,這時候用基於邊緣的方法就不合適了,用基於區域的方法更好。再比如帶紋理的圖像,例如條紋衫,如果用基於邊緣的方法很可能就把每一條紋都分割成一個物體,但實際上衣服是一個整體,這時候用基於紋理的方法就能把紋理相同或相似的區域分成一個整體。
不過總體來說,基於區域的方法近些年更熱一些,如Meanshift分割方法、測地線活動輪廓模型、JSEG等。
㈡ OCR圖像文字識別圖像分割演算法
對於文字ocr中的分割步驟應用的演算法一般是個綜合體,不是像你說的單一某種演算法可完成的
比如不粘連的 可以用連通檢測分割, 粘連的一般會用投影分割加驗知,粘連厲害的可以用像滴水法等
㈢ 圖像分割
圖A的按照圖B的直方圖進行規定化也只是近似規定化,就是如何將圖A中個像素值的灰度值變化得到一幅新圖,該圖的灰度值按照圖B直方圖的規律進行分布。這很難得到嚴格遵守圖B的直方圖分布規律。這種逼近有很多種演算法。
這個就可以了:演示其中一張圖
%規定化直方圖
clear all
clc
A=imread('girl.png'); %讀入圖像
A=rgb2gray(A);
imshow(A) %顯示出來
title('輸入圖像')
%繪制直方圖
[m,n]=size(A); %測量圖像尺寸
B=zeros(1,256); %預創建存放灰度出現概率的向量
for k=0:255
B(k+1)=length(find(A==k)); %計算每級灰度出現的概率,將其存入B中相應位置
end
figure,bar(0:255,B,'g'); %繪制直方圖
title('原圖像直方圖')
xlabel('灰度值')
ylabel('出現概率')
axis([0,260,0,0.026])
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=B(j)+S1(i); %計算原灰度圖累計直方圖
end
end
S3=zeros(1,256);
for i=1:150
S3(i+80)=B(i);
end
S4=zeros(1,256);
for i=81:230
S4(i)=B(i)+S3(i);
end
counts=S4;
S2=zeros(1,256);
for i=1:256
for j=1:i
S2(i)=counts(j)+S2(i);
end
end; %"累計"規定化直方圖
%對比直方圖,找到相差最小的灰度級
S=zeros(256,256);
for i=1:256
for j=1:256
S(j,i)=abs(S2(j)-S1(i));
end
end
[Y,T]=min(S);
%確定變換關系,重組直方圖
for j=1:256
H(j)=sum(B(find(T==j)));
end
figure,bar(0:255,H,'g') %顯示規定化後的直方圖
title('規定化後的直方圖')
xlabel('灰度值')
ylabel('出現概率')
axis([0,260,0,0.03])
%顯示規定圖
PA=A;
for i=0:255
PA(find(A==i))=T(i+1); %將各個像素歸一化後的灰度值賦給這個像素
end
figure,imshow(PA) %顯示均衡化後的圖像
title('規定化後圖像')
㈣ 圖像分割最好方法
1.基於閾值的分割方法
閾值法的基本思想是基於圖像的灰度特徵來計算一個或多個灰度閾值,並將圖像中每個像素的灰度值與閾值作比較,最後將像素根據比較結果分到合適的類別中。因此,該方法最為關鍵的一步就是按照某個准則函數來求解最佳灰度閾值。
閾值法特別適用於目標和背景占據不同灰度級范圍的圖。圖像若只有目標和背景兩大類,那麼只需要選取一個閾值進行分割,此方法成為單閾值分割;但是如果圖像中有多個目標需要提取,單一閾值的分割就會出現作物,在這種情況下就需要選取多個閾值將每個目標分隔開,這種分割方法相應的成為多閾值分割。
2.基於區域的圖像分割方法
基於區域的分割方法是以直接尋找區域為基礎的分割技術,基於區域提取方法有兩種基本形式:一種是區域生長,從單個像素出發,逐步合並以形成所需要的分割區域;另一種是從全局出發,逐步切割至所需的分割區域。
分水嶺演算法
分水嶺演算法是一個非常好理解的演算法,它根據分水嶺的構成來考慮圖像的分割,現實中我們可以想像成有山和湖的景象,那麼一定是水繞山山圍水的景象。
分水嶺分割方法,是一種基於拓撲理論的數學形態學的分割方法,其基本思想是把圖像看作是測地學上的拓撲地貌,圖像中每一點像素的灰度值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每一個局部極小值表面,刺穿一個小孔,然後把整個模型慢慢浸入水中,隨著浸入的加深,每一個局部極小值的影響域慢慢向外擴展,在兩個集水盆匯合處構築大壩,即形成分水嶺。
㈤ 圖像分割用什麼演算法好
我來回答,要根據具體情況來定!
朋友,以後要努力,去單位i不是每個人都想幫你!
㈥ 如何分析一個圖像分割演算法
論文閱讀筆記:圖像分割方法deeplab以及Hole演算法解析
deeplab發表在ICLR
2015上。論文下載地址:Semantic
Image
Segmentation
with
Deep
Convolutional
Nets
and
Fully
Connected
CRFS.
deeplab方法概述
deeplab方法分為兩步走,第一步仍然採用了FCN得到
coarse
score
map並插值到原圖像大小,然後第二步借用fully
connected
CRF對從FCN得到的分割結果進行細節上的refine。
下面這張圖很清楚地展示了整個結構:
然後這張圖展示了CRF處理前後的效果對比,可以看出用了CRF以後,細節確實改善了很多:
deeplab對FCN更加優雅的處理方式
在第一步中,deeplab仍然採用了FCN來得到score
map,並且也是在VGG網路上進行fine-tuning。但是在得到score
map的處理方式上,要比原FCN處理的優雅很多。
還記得CVPR
2015的FCN中是怎麼得到一個更加dense的score
map的嗎?
是一張500x500的輸入圖像,直接在第一個卷積層上conv1_1來了一個100的大padding。最終在fc7層勉強得到一個16x16的score
map。雖然處理上稍顯粗糙,但是畢竟人家是第一次將圖像分割在CNN上搞成end-to-end,並且在當時performance是state-of-the-art,也很理解。
deeplab摒棄了這種做法,取而代之的是對VGG的網路結構上做了小改動:將VGG網路的pool4和pool5層的stride由原來的2改為了1。就是這樣一個改動,使得vgg網路總的stride由原來的32變成8,進而使得在輸入圖像為514x514,正常的padding時,fc7能得到67x67的score
map,
要比FCN確實要dense很多很多。
但是這種改變網路結果的做法也帶來了一個問題:
stride改變以後,如果想繼續利用vgg
model進行fine
tuning,會導致後面filter作用的區域發生改變,換句話說就是感受野發生變化。這個問題在下圖(a)
(b)中通過花括弧體現出來了:
Hole演算法
於是乎,作者想出了一招,來解決兩個看似有點矛盾的問題:
既想利用已經訓練好的模型進行fine-tuning,又想改變網路結構得到更加dense的score
map.
這個解決辦法就是採用Hole演算法。如下圖(a)
(b)所示,在以往的卷積或者pooling中,一個filter中相鄰的權重作用在feature
map上的位置都是物理上連續的。如下圖(c)所示,為了保證感受野不發生變化,某一層的stride由2變為1以後,後面的層需要採用hole演算法,具體來講就是將連續的連接關系是根據hole
size大小變成skip連接的(圖(c)為了顯示方便直接畫在本層上了)。不要被(c)中的padding為2嚇著了,其實2個padding不會同時和一個filter相連。
pool4的stride由2變為1,則緊接著的conv5_1,
conv5_2和conv5_3中hole
size為2。接著pool5由2變為1,
則後面的fc6中hole
size為4。
代碼
主要是im2col(前傳)和col2im(反傳)中做了改動
(增加了hole_w,
hole_h),這里只貼cpu的用於理解:
㈦ 跪求圖像分割snake演算法詳細解釋
主要公式為曲線能量Esnake(公式1);Esnake由內部能量Eint(公式2)及外部能量Eext(公式3)組成;而根據公式2內部能量Eint是由一階導得到的平滑性約束(彈性繩子)二階導得到的氣球約束(剛性棍子)共同決定;根據公式3外部能Eext由梯度場決定(另一個分量不考慮)那麼粗略表示為Esnake=Vs+Vss+Eext;可以認為當Esnake的能量達到最小時snake曲線和物體的邊緣一致。
上面這些基本是每個論文上面都有的,下面照我的理解來講。結合很多論文上用的那個U形物體,snake檢測它的輪廓時,預先以一個圓形的像素圈套住它作為初始的snake線,可以取一定個數的點來離散化snake線,那麼這時就可以求這條snake線與原始圖像間的曲線能量Esnake了;Vs對應的是一階的平滑性,可轉化為snake線中相鄰像素之間的坐標差;差值越大能量越大平滑性也就越差;Vss對應的是二階的剛性;可轉化為snake線中某點和它相鄰的線上點間的法線方向的增長度量;Eext是梯度場能量,是由原本的灰度圖決定的,可轉化為snake中某點在灰度圖中的鄰域梯度。求出了這三個;再以一定的方式進行循環逼近那個使Esnake最小的snake線就找到了輪廓。
過獎了~我也是在研究中,你留個郵箱,我發個程序給你,看實例好理解點
㈧ 圖像分割演算法能對每個圖像分割嗎
我當時做過用k-means進行圖像分割(當然是根據RGB在顏色空間中進行聚類 然後分割) 如果是指根據顏色對圖像進行分割的話 k-means應該是應用最廣泛的一種演算法了吧(因為簡單高效) 當然其他聚類演算法也可行 不過還是一樣 k-means的應用最廣泛 而且也有很多文章在討論濾波 降噪 把亮度 邊界效應 等因素考慮進來使分割效果更好 從我們當時的圖像分割的結果來看 k-means演算法的性能還是不錯的(實驗樣本採用的是UC Irvine Machine Learning Repository 主要測試了 CMU Face Images 和 Wine)
㈨ 什麼是圖像分割
1 數字圖像處理技術是一個跨學科的領域。隨著計算機科學技術的不斷發展,圖像處理和分析逐漸形成了自己的科學體系,新的處理方法層出不窮,盡管其發展歷史不長,但卻引起各方面人士的廣泛關注。首先,視覺是人類最重要的感知手段,圖像又是視覺的基礎,因此,數字圖像成為心理學、生理學、計算機科學等諸多領域內的學者們研究視覺感知的有效工具。其次,圖像處理在軍事、遙感、氣象等大型應用中有不斷增長的需求。
基於圖論的圖像分割技術是近年來國際上圖像分割領域的一個新的研究熱點。該方法將圖像映射為帶權無向圖,把像素視作節點。利用最小剪切准則得到圖像的最佳分割 該方法本質上將圖像分割問題轉化為最優化問題。是一種點對聚類方法。對數據聚類也具有很好的應用前景。但由於其涉及的理論知識較多,應用也還處在初級階段。因此國內這方面的研究報道並不多見,本文將對圖論方法用於圖像分割的基本理論進行簡要介紹,並對當前圖論方法用於圖像分割的最新研究進展進行綜述,並著重介紹基於等周圖割的圖像分割的方法。
2 圖像目標分割與提取技術綜述
圖像分割是一種重要的圖像技術,在理論研究和實際應用中都得到了人們的廣泛重視。圖像分割的方法和種類有很多,有些分割運算可直接應用於任何圖像,而另一些只能適用於特殊類別的圖像。有些演算法需要先對圖像進行粗分割,因為他們需要從圖像中提取出來的信息。例如,可以對圖像的灰度級設置門限的方法分割。值得提出的是,沒有唯一的標準的分割方法。許多不同種類的圖像或景物都可作為待分割的圖像數據,不同類型的圖像,已經有相對應的分割方法對其分割,同時,某些分割方法也只是適合於某些特殊類型的圖像分割。分割結果的好壞需要根據具體的場合及要求衡量。圖像分割是從圖像處理到圖像分析的關鍵步驟,可以說,圖像分割結果的好壞直接影響對圖像的理解。
3 定義及分割方法
為後續工作有效進行而將圖像劃分為若干個有意義的區域的技術稱為圖像分割(Image Segmentation)
目前,有許多的圖像分割方法,從分割操作策略上講,可以分為基於區域生成的分割方法,基於邊界檢測的分割方法和區域生成與邊界檢測的混合方法.