Python OpenCV – Depth map from Stereo Images

OpenCV is the huge open-source library for the computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems.

Note: For more information, refer to Introduction to OpenCV

Depth Map : A depth map is a picture where every pixel has depth information(rather than RGB) and it normally represented as a greyscale picture. Depth information means the distance of surface of scene objects from a viewpoint. An example of pixel value depth map can be found here : Pixel Value Depth Map using Histograms

Stereo Images : Two images with slight offset. For example, take a picture of an object from the center. Move your camera to your right by 6cms while keeping the object at the center of the image. Look for the same thing in both pictures and infer depth from the difference in position. This is called stereo matching. To have best results, avoid distortions.

Approach



Example :

Sample Images:

Left

Right

filter_none

edit
close

play_arrow

link
brightness_4
code

# import OpenCV and pyplot 
import cv2 as cv
from matplotlib import pyplot as plt
  
# read left and right images
imgR = cv.imread('right.png', 0)
imgL = cv.imread('left.png', 0)
  
# creates StereoBm object 
stereo = cv.StereoBM_create(numDisparities = 16,
                            blockSize = 15)
  
# computes disparity
disparity = stereo.compute(imgL, imgR)
  
# displays image as grayscale and plotted
plt.imshow(disparity, 'gray')
plt.show()
chevron_right

Output:

Disparity Map Output

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.


Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :