如何在深度图上进行彩色图像分割并创建表示结果的 9 个索引数组?

问题描述

我的问题是什么?

我正在开发一个项目,该项目将图像作为输入,然后使用 DenseDepth 将其转换为深度图,然后我想通过获取颜色范围然后生成一个深度图的蒙版掩码,然后通过将掩码分成 9 个偶数网格,将此数据存储到一个数组中,如果它包含超过 50% 的掩码区域(黑色),则将其保存为数组中的 1,否则保存为 0 . 我在下面整理了一个小插图,以更好地说明我想要实现的目标。我标记完成的地方是我已经完成的。 因为这是我的第一个问题,我无法直接嵌入图像,所以我在下面链接了它!

Illustration explaining my issues and what I want to achieve clearly

我是如何尝试解决这个问题的?

这是我在图像分割上尝试创建蒙版的一篇文章,但是,我确信它可以改进here - 这是西班牙语(我认为)但在 Chrome 上它会自动翻译

这是我的屏蔽代码:

import cv2
import numpy as np

image = cv2.imread('Depth Map 1.png')
hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
blur = cv2.medianBlur(hsv,11)

lower = np.array([0,35])
upper = np.array([0,44])

mask = cv2.inRange(blur,lower,upper)
res = cv2.bitwise_and(image,image,mask= mask)            

cv2.imshow("mask ",mask)
cv2.imshow('stack',np.hstack([image,res]))
cv2.waitKey(0)

为了找到上限和下限,我运行了这个 code - 按 R 获取值。

至于将蒙版图像划分为网格,然后在此基础上创建一个 9 位数组,我完全不知所措。

如果有人感兴趣,我会使用 DenseDepth 生成深度图,然后对其进行调整以满足我的需要,即。而是创建一个灰度图并输出多个单张图像。

如果有任何我可能遗漏的额外信息或可以帮助您解决问题的事情,那么我一定会尽力提供帮助

出于测试目的,我包含了一些我生成的深度图:

Depth Map 1

Depth Map 2

Depth Map 3

Depth Map 4

编辑 在代码中,我将 '6.png' 调整为 'Depth Map 1.png' 以使其更清晰。

我意识到这个问题更适合分成两个单独的问题。我有/正在问。

这是第一个:

How to mask a Depth Map to select grey values in-between two specified hex-codes?

但是,这里的帮助肯定会受到赞赏!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)