圖割演算法
A. 圖論割集問題
回答樓主,圖論大多問題的解決,需要用到遍歷演算法,判斷割集我想不會有其它演算法,遍歷的演算法目前是圖論中最基本最重要的演算法,當然對一些特殊的圖可能會有其它方法.遍歷演算法的計算復雜度不是很大的,是多項式演算法,在計算機上可以實現.當然在選取邊和點時應考慮技巧性,這恐怕是個難題,否則會出現組合爆炸,就象貨郎擔問題一樣,比如選擇點可以首先考慮選取度數最大的點,選取邊一定要選不在迴路上的邊.這需要你的智慧.
割集分為點割集和邊割集,對一個圖G=(V,E)來說如果存在一個結點集V的子集,從G中刪除這些結點後,它的連通分圖的個數增多,則稱該子集為點割集,對一個連通圖來說,刪除這些結點後,連通圖變為不連通.點割集一般不是唯一的,含有最小結點個數的點割集稱為最小點割集,類似可定義邊割集和最小邊割集,僅含1個點的點割集稱為割點,僅含1個邊的邊割集稱為割邊,割邊也稱為橋.
求一個連通簡單圖的割集的演算法,我想可用遍歷的演算法,目前常用的是深度優先搜索或者廣度優先搜索演算法來做,這是圖論中最基本的演算法,這種演算法可求出圖的連通分圖的個數,以此來判斷某子集是否是割集.
B. 用graphcut演算法分割圖像時,怎樣顯示最終的分割圖像
這個屬於Graph Cut的內容,馬爾科夫隨機場的含義直觀上講就是,圖像的每個像素的前景、背景標定只與相鄰像素有關,學過隨即過程的應該很容易理解這個,當前狀態只與上一狀態有關。每個像素都有一個屬於前景的概率和一個屬於背景的概率,那麼作為能量函數中的數據項,能量函數將對錯誤的標定(如,原本屬於前景,但分割過程將其劃定為背景),那麼將會對其進行懲罰,這個懲罰就是通過最大後驗概率來算的,就是取概率的負對數。能量函數中的平滑項,是對相鄰像素劃為不同類別的懲罰。MAP+MRF是圖割模型的基礎。
C. 跪求圖像分割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線就找到了輪廓。
過獎了~我也是在研究中,你留個郵箱,我發個程序給你,看實例好理解點
D. 如何分析一個圖像分割演算法
論文閱讀筆記:圖像分割方法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的用於理解:
E. 求圖割演算法 graph cut 的matlab代碼
解決方案1:
直接用緝鼎光刮叱鈣癸水含驚ifft();例如信號x
y=fft(x);%對信號傅里葉變換到頻域
z=ifft(y);%對信號y傅里葉反變換到時域,
解決方案2:
工具箱啊。IFFT()函數
F. 圖像分割演算法 的大致流程(最好是MRF)
http://..com/question/29169347.html
G. 求計算公式:一張圖片按照指定比例,能切割的最大尺寸
這個問題其實很好計算,你把原始圖片的寬除以高,得到原始寬高比a,如果a大於0.5,那麼就應該以原始圖片的高為標准來裁剪,否則以原始圖片的寬為准來裁剪。至於另外一個尺寸的值,直接用0.5去計算就行了
H. 圖像分割演算法分為幾類
從學術角度講圖像分割主要分成3大類,一是基於邊緣的,二是基於區域的,三是基於紋理的。由於基於紋理的也可以看成是基於區域的,所以有些專家也把分割方法分成基於邊緣和基於區域兩大類。
選擇演算法的時候主要參考你要分割的圖像樣本的特點。
如果圖像的邊界特別分明,比如綠葉和紅花,在邊界處紅綠明顯不同,可以精確提取到邊界,這時候用基於邊緣的方法就可行。但如果是像醫學圖像一樣,輪廓不是特別明顯,比如心臟圖像,左心房和左心室顏色比較接近,它們之間的隔膜僅僅是顏色比它們深一些,但是色彩上來說很接近,這時候用基於邊緣的方法就不合適了,用基於區域的方法更好。再比如帶紋理的圖像,例如條紋衫,如果用基於邊緣的方法很可能就把每一條紋都分割成一個物體,但實際上衣服是一個整體,這時候用基於紋理的方法就能把紋理相同或相似的區域分成一個整體。
不過總體來說,基於區域的方法近些年更熱一些,如Meanshift分割方法、測地線活動輪廓模型、JSEG等。
I. 請教電子地圖的切割演算法
你先把它載成圖片 不就好做拉嗎
按PRTSC SYS REQ 就可以載圖 是全平的
然後你用畫圖軟體粘貼就可以做拉