Python 是一種高級編程語言,其應用廣泛,尤其在計算機視覺、機器學習和人工智能等領域中廣為人知。Python 在三維圖像處理的應用中卓有成效,特別是在立體像對方面。立體像對是通過兩個或多個圖像進行比較,以獲得場景的三維形狀信息的過程。
Python提供了幾種可用于立體像對的庫和工具。對于大多數人來說,OpenCV(Open Source Computer Vision Library)是這些中使用最多的庫之一。它是一個跨平臺庫,可用于處理視頻、圖像和實時流。
import cv2
img_left = cv2.imread('left_image.jpg')
img_right = cv2.imread('right_image.jpg')
gray_left = cv2.cvtColor(img_left, cv2.COLOR_BGR2GRAY)
gray_right = cv2.cvtColor(img_right, cv2.COLOR_BGR2GRAY)
stereo = cv2.StereoSGBM_create(minDisparity=0, numDisparities=16, blockSize=15)
disparity = stereo.compute(gray_left, gray_right)
disparity_visual = cv2.normalize(src=disparity, dst=None, beta=0, alpha=255, norm_type=cv2.NORM_MINMAX)
以上代碼將左右兩張圖像加載并轉換成灰度格式。接著,利用 CV2 庫中的 StereoSGBM_create 函數來計算 Disparity Map(也稱為視差圖)。Disparity Map 顯示了相鄰像素點之間的距離,并用灰度值表示到相機的距離。最后,通過 normalize 函數將其轉換為可視化圖像。
通過上述過程,我們已經成功地從兩個圖像中計算出了立體視圖。這個過程可以進一步擴展以包括更多的攝像頭或更多的圖像,以得到更高精度的立體圖像信息。