Depth Map from Stereo Images

จาก Morange Wiki

วัตถุประสงค์

  • เราจะเรียนรู้ที่จะสร้างแผนที่ความลึกจากภาพสเตอริโอ


พื่นฐาน ในช่วงที่ผ่านมาเราได้เห็นแนวคิดพื้นฐานเช่นการ จำกัด epipolar และเงื่อนไขอื่น ๆ ที่เกี่ยวข้อง นอกจากนี้เรายังเห็นว่าถ้าเรามีสองภาพของฉากเดียวกันเราจะได้รับข้อมูลเชิงลึกจากว่าในวิธีที่ง่าย ด้านล่างนี้เป็นภาพและบางสูตรทางคณิตศาสตร์ที่เรียบง่ายซึ่งพิสูจน์สัญชาติญาณว่า

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย

แผนภาพข้างต้นมีรูปสามเหลี่ยมเทียบเท่า เขียนสมการเทียบเท่าของพวกเขาจะทำให้เราผลต่อไปนี้

Selection 044.jpg

X และ X 'มีระยะห่างระหว่างจุดในระนาบของภาพที่สอดคล้องกับ 3D จุดเกิดเริ่มต้นและศูนย์กล้อง B คือระยะห่างระหว่างกล้องสอง (ซึ่งเรารู้) และ F คือความยาวโฟกัสของกล้อง (รู้จักกันอยู่แล้ว) ดังนั้นในระยะสั้น, สมการข้างต้นกล่าวว่าความลึกของจุดในฉากที่จะแปรผกผันกับความแตกต่างในระยะทางที่สอดคล้องกันของจุดภาพและศูนย์กล้องดังนั้นด้วยข้อมูลนี้เราสามารถได้รับความลึกของพิกเซลทั้งหมดในภาพ

ดังนั้นจึงพบว่าตรงกับที่สอดคล้องกันระหว่างสองภาพที่ เราได้เห็นแล้วว่ามีข้อ จำกัด epiline ทำให้การดำเนินการนี้ได้เร็วขึ้นและถูกต้อง เมื่อพบการแข่งขันที่พบความแตกต่าง ลองมาดูกันว่าเราสามารถทำมันได้ด้วย OpenC

โค๊ด

 import numpy as np
 import cv2
 from matplotlib import pyplot as plt
 
 imgL = cv2.imread('joy.jpg',0)
 imgR = cv2.imread('joy.jpg',0)
 
 stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
 disparity = stereo.compute(imgL,imgR)
 plt.imshow(disparity,'gray')
 plt.show()
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
ต้นฉบับ


มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย