标签: image-segmentation

从二进制图像中分割出类似圆形的形状

我有几个二进制图像,我的任务是分割圆形的形状.圆圈不是完美的圆形圆圈,但它们看起来都像圆圈.以下是一些示例图像和我需要的内容:

在此输入图像描述

从上面可以看出,左图像是原始图像,右图像是我需要做的.圆圈与其他形状相交,但我只想要圆圈,如红色所示.将需要用于关闭圆的虚线.在这种情况下,我可以在图像处理中做什么?

编辑:万一,上面的图像被打破,在这里:http://imageshack.us/photo/my-images/835/circleonly.jpg/

image-processing image-segmentation

7
推荐指数
2
解决办法
1232
查看次数

图像分割 - 拆分和合并(四叉树)

是否有图像分割的拆分和合并方法的实现?任何建议将不胜感激.

c# computer-vision image-segmentation

7
推荐指数
2
解决办法
2万
查看次数

OCR:小文本的细分

问题

我一直在构建一个(非常)简单的OCR引擎.由于我试图对非常小(像素大小)的字符进行分类,我在分割方面遇到了一些困难.这是一个例子,经过尽力而为的图像范围阈值处理:

有问题的分割图像63:

我试过的

错误检测:

  • 段的大水平尺寸.它主要起作用,但对于一些较大的角色失败(误报).
  • 分类,并拒绝低分.这似乎有点浪费.

错误修正:

  • 垂直添加像素(垂直直方图),找到最小值.在许多样本中,它会在错误的位置切割许多段.

我还没有尝试过

  • 尝试对所有可能的分割点(像素)进行分类.这将是非常浪费的,并且很难扩展为3合并字符段.
  • 我一直在阅读形态学方法,将角色转化为数学曲线,但我不知道真的知道从哪里开始,或者是否值得努力

然后去哪儿?

我不知道.因此这个问题:)

language-agnostic ocr opencv image-processing image-segmentation

7
推荐指数
1
解决办法
1912
查看次数

从X射线图像中提取手骨

我有一只手的X射线图像.我需要自动提取骨骼.我可以使用不同的技术轻松分割手.但我需要得到骨头并使用这些技术无济于事.有些骨头比其他骨头更亮,所以如果我使用阈值处理,其中一些骨头会消失,而其他骨骼则会变得更清晰.我想也许我应该只限制一个手的区域?是否可以限制不是正方形的投资回报率?哦,也许你有任何其他解决方案,建议?也许有一些像OpenCV这样的图书馆?任何帮助都会非常棒!

扩展:

原始图像 预期产出

                 原始图像                      预期输出

opencv image-processing image-segmentation

7
推荐指数
1
解决办法
2511
查看次数

使用Matlab 2013a进行标准化切割

我正在使用http://www.cis.upenn.edu/~jshi/software/Ncut_9.zip中的规范化剪切包 (在Windows 7上)

这曾经与Matlab2010a一起使用.但是我已升级到Matlab2013a(32位学生版),现在我收到以下错误:

Error using arpackc
Expect 2 output arguments

Error in eigs_new (line 240)
        arpackc( aupdfun, ido, ...

Error in ncut (line 83)
[vbar,s,convergence] =
eigs_new(@mex_w_times_x_symmetric,size(P,1),nbEigenValues,'LA',options,tril(P));

Error in ncutW (line 9)
[NcutEigenvectors,NcutEigenvalues] =
ncut(W,nbcluster);

Error in NcutImage (line 18)
[NcutDiscrete,NcutEigenvectors,NcutEigenvalues]
= ncutW(W,nbSegments);

Error in demoNcutImage (line 25)
[SegLabel,NcutDiscrete,NcutEigenvectors,NcutEigenvalues,W,imageEdges]=
NcutImage(I,nbSegments);
Run Code Online (Sandbox Code Playgroud)

显然,该new_eigs()函数ncuts与最新的Matlab中的ARPACK版本不兼容.

  • 有人知道解决方法吗?
  • 规范化使用Matlab eigs()函数的修改版本.为什么我不能只使用Matlab的内置eigs()而不是eigs_new()(它似乎工作).

matlab cluster-analysis image-processing image-segmentation arpack

7
推荐指数
2
解决办法
5387
查看次数

BackgroundSubtractorMOG2中"history"的含义是什么?

我正在使用OpenCV for java(但这与我猜不相关).我正在使用这里BackgroundSubtractorMOG2引用的(很差)类.我已经阅读并理解了Zivkovic关于算法的论文,您可以在这里找到.

BackgroundSubtractorMOG2在其构造函数中引入一个名为的参数history.它是什么,它如何影响结果?例如,你能指点我在纸上的参考吗?

从类源代码,第106行,据说alpha = 1/history.这意味着历史就是论文中的T参数,即(或多或少)构成训练集的帧数.

然而,它似乎并非如此.将构造函数中的值从10更改为500或更高,对最终结果没有影响.这就是我所说的:

Mat result = new Mat();
int history = 10; //or 50, or 500, or whatever
BackgroundSubtractorMOG2 sub = new BackgroundSubtractorMOG2(history, 16, false);
for (....) {
    sub.apply(frame[i], result);
}
imshow(result); //let's see last frame
Run Code Online (Sandbox Code Playgroud)

我设定的历史无关紧要,无论是5,10,500,1000 - 结果总是一样的.然而,如果我改变了alpha价值(学习率)apply(),我可以看到它真正的影响力:

Mat result = new Mat();
float alpha = 0.1; //learning rate, 1/T (1/history?)
BackgroundSubtractorMOG2 sub = new BackgroundSubtractorMOG2(whatever, …
Run Code Online (Sandbox Code Playgroud)

c++ java opencv image-segmentation

7
推荐指数
1
解决办法
1131
查看次数

图像分割:创建多边形

我输入的图像如下所示:

在此输入图像描述 在此输入图像描述

我喜欢以一种方式对图像进行分割,以获得仅包含水平垂直线的近似多边形.

我的第一种方法是霍夫分割,但我只能创建矩形对象.这不适用于第二张图像.

然后我尝试使用决策树:对于每个图像,我训练了一个决策树,其中包含所有像素的输入x和y位置以及黑/白分类.然后我只使用了n这棵树的第一层.使用这个新树,我对所有像素进行了预测.有时这很好用,但有时它没有.特别是树木深度因图片而异......

也许有人知道如何做到这一点?或者是否已有针对此用例的算法?

非常感谢你

问候

凯文

image polygon image-segmentation python-2.7

7
推荐指数
1
解决办法
362
查看次数

损失函数设计,以适用于假阳性和假阴性的不同重量

我正在尝试解决语义分段问题.根据实际约束,假阳性的标准和假阴性的标准是不同的.例如,如果像素被错误校正,则前景不太理想,而像素被错误校正为背景.如何在设置损失函数时处理这种约束.

computer-vision image-segmentation deep-learning keras tensorflow

7
推荐指数
1
解决办法
1939
查看次数

图像中超像素的相邻和非相邻超像素

将图像分割成N个超像素后,我需要指定与一个超像素相邻或不相邻的超像素,并为所有超像素确定这种关系。

[L,NumLabels] = superpixels(A,200);
Run Code Online (Sandbox Code Playgroud)

如何为每个超像素指定相邻的超像素?

更新资料

我已经尝试了@Cris Luengo介绍的解决方案。但是出现了以下错误:

B=imread('H.jpg');
[L,N] = superpixels(B,200);
glcms=graycomatrix(L);
k=glcms(:,50);    %SupNum=50
[r,~]=find(k>0); 
aa=find(r==50);
r(aa)=[];
Run Code Online (Sandbox Code Playgroud)

错误

更新2 我按照MATLAB帮助中的说明进行操作,但对我不起作用。对于SupNum = 8,产生了以下结果:

输出量

matlab image-processing image-segmentation matlab-coder superpixels

7
推荐指数
1
解决办法
289
查看次数

如何使用OpenCV对图像中的像素组进行分组和突出显示?

在对图像进行错误级别分析的过程中,我想使用OpenCV(仅显示单个图像而不显示差异)来突出显示像素变化。我知道输出图像的像素级值,但不确定将它们分组在一起并为其指定形状的方法(下面的示例使用形状指定像素变化)。我想知道是否可以检测到像素较浅的圆圈并将其分组并为像素添加分组形状

输入图片:

在此处输入图片说明

结果图像:

在此处输入图片说明

python opencv image image-processing image-segmentation

7
推荐指数
2
解决办法
174
查看次数