日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 立体图像_OpenCV-Python 立体图像的深度图 | 五十二

發(fā)布時(shí)間:2025/3/19 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 立体图像_OpenCV-Python 立体图像的深度图 | 五十二 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目標(biāo)

在本節(jié)中,

我們將學(xué)習(xí)根據(jù)立體圖像創(chuàng)建深度圖。

基礎(chǔ)

在上一節(jié)中,我們看到了對(duì)極約束和其他相關(guān)術(shù)語等基本概念。我們還看到,如果我們有兩個(gè)場景相同的圖像,則可以通過直觀的方式從中獲取深度信息。下面是一張圖片和一些簡單的數(shù)學(xué)公式證明了這種想法。

上圖包含等效三角形。編寫它們的等式將產(chǎn)生以下結(jié)果:

disparity=x?x′=BfZdisparity = x - x' = \frac{Bf}{Z}disparity=x?x′=ZBf?

xxx和x′x'x′是圖像平面中與場景點(diǎn)3D相對(duì)應(yīng)的點(diǎn)與其相機(jī)中心之間的距離。BBB是兩個(gè)攝像機(jī)之間的距離(我們知道),fff是攝像機(jī)的焦距(已經(jīng)知道)。簡而言之,上述方程式表示場景中某個(gè)點(diǎn)的深度與相應(yīng)圖像點(diǎn)及其相機(jī)中心的距離差成反比。因此,利用此信息,我們可以得出圖像中所有像素的深度。

因此,它在兩個(gè)圖像之間找到了對(duì)應(yīng)的匹配項(xiàng)。我們已經(jīng)看到了Epiline約束如何使此操作更快,更準(zhǔn)確。一旦找到匹配項(xiàng),就會(huì)發(fā)現(xiàn)差異。讓我們看看如何使用OpenCV做到這一點(diǎn)。

代碼

下面的代碼片段顯示了創(chuàng)建視差圖的簡單過程。

import numpy as np

import cv2 as cv

from matplotlib import pyplot as plt

imgL = cv.imread('tsukuba_l.png',0)

imgR = cv.imread('tsukuba_r.png',0)

stereo = cv.StereoBM_create(numDisparities=16, blockSize=15)

disparity = stereo.compute(imgL,imgR)

plt.imshow(disparity,'gray')

plt.show()

下面的圖像包含原始圖像(左)及其視差圖(右)。如你所見,結(jié)果受到高度噪聲的污染。通過調(diào)整numDisparities和blockSize的值,可以獲得更好的結(jié)果。

當(dāng)你熟悉StereoBM時(shí),會(huì)有一些參數(shù),可能需要微調(diào)參數(shù)以獲得更好,更平滑的結(jié)果。參數(shù):

texture_threshold:過濾出紋理不足以進(jìn)行可靠匹配

區(qū)域斑點(diǎn)范圍和大小:基于塊的匹配器通常會(huì)在對(duì)象邊界附近產(chǎn)生“斑點(diǎn)”,其中匹配窗口捕獲一側(cè)的前景和背景 在另一場景中,匹配器似乎還在桌子上投影的紋理中找到小的虛假匹配項(xiàng)。為了消除這些偽像,我們使用由speckle_size和speckle_range參數(shù)控制的散斑濾鏡對(duì)視差圖像進(jìn)行后處理。speckle_size是將視差斑點(diǎn)排除為“斑點(diǎn)”的像素?cái)?shù)。speckle_range控制必須將值差異視為同一對(duì)象的一部分的程度。

視差數(shù)量:滑動(dòng)窗口的像素?cái)?shù)。它越大,可見深度的范圍就越大,但是需要更多的計(jì)算。

min_disparity:從開始搜索的左像素的x位置開始的偏移量。

uniqueness_ratio:另一個(gè)后過濾步驟。如果最佳匹配視差不足夠好于搜索范圍中的所有其他視差,則將像素濾出。如果texture_threshold和斑點(diǎn)過濾仍在通過虛假匹配,則可以嘗試進(jìn)行調(diào)整。

prefilter_size和prefilter_cap:預(yù)過濾階段,可標(biāo)準(zhǔn)化圖像亮度并增強(qiáng)紋理,以準(zhǔn)備塊匹配。通常,你不需要調(diào)整這些。

附加資源

Ros stereo img processing wiki page

練習(xí)

OpenCV樣本包含生成視差圖及其3D重建的示例。查看OpenCV-Python示例代碼stereo_match.py??

總結(jié)

以上是生活随笔為你收集整理的python 立体图像_OpenCV-Python 立体图像的深度图 | 五十二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。