如何在图像中将相同的正常向量分组(Python)

2024-05-12 22:43:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把墙和地板分开。现在,我有一个深度图像,在深度图像中找到曲面法线。我想把相同的法向量分组,然后把图像转换成二进制。你知道吗

enter image description here

下面的代码是如何找到曲面法线。你知道吗

    d_im = depth_image.astype("float64")

    zy, zx = np.gradient(d_im)  
    normal = np.dstack((-zx, -zy, np.ones_like(d_im)))

    n = np.linalg.norm(normal, axis=2)

    normal[:, :, 0] /= n
    normal[:, :, 1] /= n
    normal[:, :, 2] /= n

    # offset and rescale values to be in 0-255
    normal += 1
    normal /= 2

    cv2.imshow("Normal Image", normal[:, :, ::-1])

我想从墙上得到法向量。我该怎么办?多谢了

深度图像文件:

http://www.wikiupload.com/20D8UHUU58FTP2S

如何在程序中得到z向量?你知道吗


Tags: 代码图像imagenp二进制向量normal曲面
1条回答
网友
1楼 · 发布于 2024-05-12 22:43:49

简单朴素的解决方案是使用法向量中的z分量和一些阈值 因为法向量是标准化的,所以地板的z分量的值接近1,而墙的z分量的值接近0 因此,阈值0.5可能是一个良好的开端 可能你需要一个去噪方法之后

相关问题 更多 >