考虑4个分割图像或numpy数组- A、B、C和D(每个像素要么是0,要么是图像中对象位置的classID )。这4个分割的2-D阵列是存在于一个图像中的不同对象的分割。例如:图像A具有分割对象#1,图像B具有分割对象#2,依此类推。需要将不同对象的所有这些分割叠加到一个图像中,而不是具有4个单独的分割图像。
当然,我们只需要执行a+b+c+d来覆盖它们。然而,对象的分割像素可以在images.For上重叠。例如,图像'A‘中的对象#1的分割像素可以与图像'B’中的对象#2的分割像素重叠。如果发生这种重叠,则对象#2的ClassID优先于该像素位置。较高object #的ClassID优先。因此,不能简单地将所有图像相加以将所有分割合并为一个相干分割图像。
两个分割图像的例子-对象A的像素值为1,B的像素值为2。在仅考虑这两个图像的情况下,我想将对象B叠加到对象A上(每个对象在组合时将具有不同的颜色)。对象B应该在它们重叠的对象A上可见。
我采取了一种方法,将每个图像逐个相加,如果任何结果像素的值等于object #1的classID和object#2的classID之和,则表示重叠,并将这些像素设置为classID #2的值。因为比较和的解决方案不是唯一的,所以没有正确地解决问题。
我知道的一种方法是遍历每个像素,并一次比较两个图像的像素对。如果有人有更有效的解决方案,请让我知道!
发布于 2019-05-08 15:54:28
听起来你只是想要所有图像的元素最大值。假设你使用的是Numpy,那么下面这样的代码应该是有效的:
numpy.maximum.reduce([A, B, C, D])这将逐个元素的最大值操作应用于每个数组,一次一个(例如,缩减)。
https://stackoverflow.com/questions/56035872
复制相似问题