小编eko*_*kol的帖子

如何使用纹理改善 StereoSGBM 结果

所以我正在为一个高中项目的 6Dof 做立体 360。我的视差结果不错,但我想知道是否有办法让它们变得更好,特别是它们如何处理纹理。随着点越来越远,视差图应该逐渐消失,但是,因为 StereoSGBM 不能很好地处理纹理,所以远处的点不合理地接近。天空也应该是黑色的,但它很亮。

视差图: 视差图

我正在使用 StereoSGBM 获取 2 个 Ricoh Theta SC 相机的视差图。我已经尝试调整视差设置并使用输入图像的亮度和对比度进行播放。我还尝试过更改 StereoSGBM 模式(HH、SGBM、SGBM_3WAY)、翻转输入图像以及使用 StereoBM 而不是 SGBM。我没有尝试校准相机(除了移动图像使相机指向完全相同的方向),因为我认为如果相机校准是一个问题,我会得到更糟糕的结果。除了 StereoSGBM 之外,还有其他一些我可以使用的视差函数可以让我获得更好的结果。我应该尝试将机器学习与 Google Cloud 结合使用来创建更好的视差模型吗?我可以给我们纽约大学深度数据集(https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html) 来训练模型。有没有人对如何改善我的结果有任何想法?

import numpy as np
import cv2 as cv
from sklearn.preprocessing import normalize
from PIL import Image, ImageEnhance, ImageOps


def func_disparity(window_size, minDisparity2, numDisparities2, blockSize2, 
    disp12MaxDiff2, uniquenessRatio2, speckleWindowSize2, speckleRange2, 
    preFilterCap2, brightness,
    contrast, event=None):

    imgR = Image.open(FILE_NAME)
    imgL = Image.open(FILEN_NAME)
    print(imgL.size)

    imgL = ImageOps.expand(imgL, border=50)
    imgR = ImageOps.expand(imgR, border=50)    
    
    contrastL = ImageEnhance.Contrast(imgL)
    contrastR = …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

5
推荐指数
0
解决办法
1582
查看次数

标签 统计

computer-vision ×1

opencv ×1

python ×1