问题标签 [marvin-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
41305 浏览

image-processing - 2D 形状识别算法 - 寻求指导

我需要能够验证用户是否正确绘制了形状,从简单的形状(如圆形、三角形)和更高级的形状(如字母 A)开始。

我需要能够实时计算正确性,例如,如果用户应该画一个圆但正在画一个矩形,我希望能够在绘制时检测到这一点。

形状识别有几种不同的方法,不幸的是我没有经验或时间去尝试所有这些方法,看看哪些方法有效。

对于这项特定任务,您会推荐哪种方法?

感谢您的帮助。

0 投票
1 回答
655 浏览

java - 在 Java 中使用 Marvin 框架去除轮廓

我正在使用Marvin Framework来获取静脉图案,但我不知道如何去除叶子轮廓

我正在执行以下操作:(每个函数都调用其相应的 Marvin 插件。):

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
74 浏览

java - 如何在服务器上处理像素级别的图像?

我想在 Linux 服务器上开发图像处理应用程序,我不知道我必须使用什么库/编程语言。是否可以在服务器端使用 OpenCV 和 java。我什至听说过 Marvin 和 java。这将是我第一次尝试在没有 Matlab 的情况下开发应用程序。所以请为此目的推荐任何好的图像处理库。

0 投票
2 回答
1607 浏览

java - 用马文缩放图像

我正在使用 Java 中的Marvin 图像处理框架,我正在努力缩放图像。它只是制作一个黑色方块,你能看到我做错了什么吗?设置的阈值有效。

0 投票
4 回答
2097 浏览

java - 如何将白色背景更改为黑色

在最近的一个项目中,我必须处理图像,但由于这对我来说是新的,所以我有点迷路了。

我需要使用常规扫描设备扫描手部。我可以完成这个,但背景是白色的,我需要它是黑色的。经过几天的研究,找到了改变颜色的方法,我只得到了一张似乎在 ms paint 中剪切和粘贴的图像。

原图:

手部原始扫描

测试:

手部原始扫描

我需要的是这样的:

目标图像

我尝试使用Marvin FrameworkImagejCatalano框架。要查看我需要的 setps,我使用 gimp、marving 编辑器、斐济应用程序(但没有得到我想要的结果)。
我想我需要的是转换为灰度,应用某种阈值,但在一定的颜色范围内使用 alpha 颜色(但我没有找到方法,只有二进制图像的阈值),然后将蒙版应用到原始使用阈值灰度图像,但我不知道如何直接在 Java 中执行此操作,或者使用我上面提到的任何框架。
任何帮助,将不胜感激。

更新 根据 m69 所说,我尝试使用发光值,从 rgb 转换为 hsl。我只设置了较浅的颜色。

首先尝试使用 0.5 的光阈值:

第一次尝试

第二次尝试使用 0.9 的光阈值

第二次尝试

问题是这种方法会改变所有像素的光线,理想的情况是只改变物体外部的颜色。我在互联网上寻找一个想法,我找到了 Martin Janík 的一篇关于骨科分析的论文。他提出了下一个算法:

  1. 对足部扫描应用高斯滤波以获得滤波图像
  2. 对滤波后的图像进行阈值化以获得二值图像
  3. 形态上关闭二值图像以获得闭合二值图像
  4. 对二值图像应用高斯滤波以获得灰度掩码
  5. 将此蒙版应用于足部扫描以获得整体足部图像

有了这个我可以得到下一个结果:

Martin Janik 算法

这接近我想要的,因为对象中的颜色没有被触及。但是对象周围的白色边框仍然存在问题。这是因为我正在使用 combineByMask marving 插件,它只支持二进制图像(不仅是二进制图像,而且只能屏蔽一种颜色)。我认为需要一个新插件来使用灰度图像蒙版进行组合,当颜色在 1-255 范围内时,尝试与图像基础组合以获得更暗或更亮的颜色(当颜色为 255 时,它应该离开只是基本图像的颜色)。

这是我所说的屏蔽灰度图像的示例图像:

示例图像使用二值图像和灰度图像应用蒙版

我想这就是我要走的路。

更新 2

在做了一些研究之后,我想我已经接近我想要的结果了。我使用的算法是:

  1. 应用五个对比度
  2. 转换为灰度图像
  3. 应用高斯滤波器
  4. 阈值图像
  5. 形态关闭
  6. 再次应用高斯滤波器
  7. 将此结果图像用作原始图像的灰度蒙版

这是结果图像:

结果应用灰度蒙版

这接近我想要的。在第六步中,我可以应用两次、三次或更多次高斯滤镜,给出更柔和的边框效果,但由于扫描图像的性质,最后总是显示一个细的白色边框(我认为这是我可以做到的)不处理)但我对这个结果很满意。现在,由于我没有找到应用灰度蒙版的 Java 算法,因此我编写了以下代码:

并且工作得几乎很好,但有一点我无法解决的小细节。这个想法是像在 gimp 中那样混合图像,我做了以下事情:在上层中使用灰度蒙版,将颜色应用于白色函数的 alpha 函数,给出以下结果:

瘸子组合

使用我为 marving 框架编写的算法,我得到下一张图像:

使用标记

不同的是,我的算法不能在原始图像上有更多的白色时降低强度颜色,你可以看到比较两个图像的效果。知道如何处理吗?这是在 gimp 中应用图层组合后的图像结果:

层组合 en gimp

0 投票
1 回答
1151 浏览

java - 如何在java中将灰度图像蒙版应用于rgb图像

我被建议将这个问题与另一个问题分开。这是原文:

如何将白色背景更改为黑色

经过一些图像处理后,我得到了一个二值图像,但边界太硬了,所以我应用了一个高斯滤波器来得到一个软的。结果是灰度图像。我需要将此图像应用为另一个图像的遮罩,它们都没有 alpha 通道,因此需要在没有此值的情况下混合颜色。我正在使用Marvin 框架来完成这项工作,但 Marvin 没有插件,所以我编写了一个,就是这样:

但是这段代码有一个我无法解决的小错误。当 rgb 图像有白色时,颜色结果没有很好地组合,它不会变暗。我正在寻找的是可以使用 gimp 实现的东西,其中有 2 层图像,底部是 rgb 图像,上层是灰度蒙版,然后在这一层中我们使用函数 color to alpha,使用白色作为目标。结果如下:

瘸子组合

Whit算法是下一个:

算法混合

区别非常明显。这是用于测试的两个原始图像:

彩色图像
(来源:imgsafe.org

灰度蒙版

0 投票
1 回答
2356 浏览

java - 如何将图像背景更改为白色?

我有一组图像。图像具有简单的背景。我想使用Marvin Framework和 Java 将背景更改为白色。

由于我是 Marvin 的新手,因此更改背景让我很麻烦。我还尝试了用于 java 的 opencv,但它给出了不满意的链接错误。

图片示例:

在此处输入图像描述

0 投票
1 回答
448 浏览

java - Marvin Plugin 属性

我最近找到了马文,并且一直在搞乱它。但是,我遇到的主要瓶颈是没有提供太多文档。Javadocs 页面很少,网站上提供的有用示例也很少。

其中大部分可以拼凑起来,但我真的希望包含的每个图像插件都有一个详细的列表。我想知道,有没有人足够使用 Marvin 来提出这个列表,或者只是最常见和有用的属性?

这将使使用马文变得如此轻而易举。谢谢。

0 投票
0 回答
178 浏览

java - marvin图像色差插件错误

每当我尝试处理两个图像的色差时,都会出现空指针异常。代码是

错误在 diff.process 语句上。图像不为空,attr 也是如此。

错误陈述是

0 投票
3 回答
423 浏览

java - 我想在java中填充轮廓

我已经创建了一个封闭轮廓,其中包含一个我想用颜色填充的点列表。我使用了边界填充递归算法,但没有运气数组索引超出范围,因为我无法开发 if 条件,因为里面的颜色闭合轮廓和轮廓外的颜色相同。我应该使用什么方法来让所需的轮廓被特定颜色填充。这是我尝试过的代码

这是图像

我的形象:矩形

这是方法调用