用灵闪时如何让图像变换(处理)工具输出的图像成为后续其它工具的输入?

Viewed 271

遇到图像质量不佳的场景,经常需要使用图像变换工具来进行预处理,而预处理的结果总是需要给后续工具使用的。

2 Answers

1、选中算法,选择图片输入,选择想要依赖的算法
image.png
多个算法可以同时选中设置
image.png

2、若遇到某种情况需要使用A算法的图片输入,另一种情况需要使用B算法的图片输入,可使用矩阵计算算法,在矩阵计算算法中进行判断选择
image.png
之后工具直接依赖矩阵计算的输出
image.png
需注意矩阵计算输出的图像默认情况下始终以0,0点为起始坐标,可以使用Trans关键字传递图像的位置,使矩阵计算图像的位置与拿到的图像位置一致(使用方式如下
image.png

最小样例和原理解释

若遇到某种情况需要使用A算法的图片输入,另一种情况需要使用B算法的图片输入

这种情况的另一种解法是,基于合并工具和索引工具来实现。样例task中的合并工具的配置如下图

image.png

索引工具配置如下图

image.png

这样做以后:

  • 当两个双阈值工具正常运行时,索引工具会输出第一个双阈值工具的结果;
  • 当第一个双阈值工具执行失败没有输出图像时,索引工具会输出第二个双阈值工具的结果

这里的原理是,合并工具中不会包含空元素,当输入无效时,会剔除,所以,合并之后输出的列表中就只包含一个图像了。下图就是当第一个双阈值输出无效时的结果,可以看到索引工具输出的结果图的尺寸和双阈值_2是一致的。

image.png

使用这种方法的好处是,可以避免写脚本。

具体使用场景举例

比如实际的相机是黑白相机,输出单通道图像,但离线测试时,因为某种原因拿到的图是RGB三通道的,所以task内我们会配置黑白工具来进行预处理,将RGB三通道的图转换成单通道灰度图。

但是,黑白工具在接收到单通道灰度图的时候,会执行失败,因为输入不再是RGB图。这时,普通的配置方法就出现后续所有算法都执行失败的情况。

但使用上面的方法,就可以让后续的算法总是能拿到一个图,简单配置和结果如下

image.png

可以看到,黑白工具执行失败的时候,索引工具输出的是图像增强(灰度增益,增益1,偏移0)输出的灰度图。