图割算法
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 就可以载图 是全平的
然后你用画图软件粘贴就可以做拉