# -*- coding:utf-8 -*-
#__author__ = 'Microcosm'
import cv2
import numpy as np
from matplotlib import pyplot as plt
import os
os.chdir(u"D:\\Documents\\5-PythonCode\\双目视觉标定等\\")
print os.path.abspath(os.curdir.decode("gbk"))
img_L = cv2.imread("left.jpg",0)
img_R = cv2.imread("right.jpg",0)
#plt.subplot(121),plt.imshow(img_L,'gray'),plt.title('img_left'),plt.xticks([]),plt.yticks([])
#plt.subplot(122),plt.imshow(img_R,'gray'),plt.title('disparity'),plt.xticks([]),plt.yticks([])
#plt.show()
#print "images read done!"
stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,32,25)
#stereo = cv2.StereoBM(numDisparities=16, blockSize=15) #OpenCV 3.0的函数 cv2.StereoBM(preset,ndisparities,SADwindowSize)
#cv2.StereoSGBM(minDisparity,numDisparities,SADWindowSize,...)
#stereo = cv2.StereoBM(numDisparities=16*num, blockSize=blockSize)
#StereoSGBM,
#(numberOfDisparities must be positive and divisble by 16)
#SADWindowSize must be odd, be within 5..255 and be not larger than image width or height
#plt.subplot(121),plt.imshow(img_R),plt.title('img_left'),plt.xticks([]),plt.yticks([])
print "*"*20
disparity = stereo.compute(img_L, img_R)
plt.subplot(121),plt.imshow(img_L,'gray'),plt.title('img_left'),plt.xticks([]),plt.yticks([])
plt.subplot(122),plt.imshow(disparity,'gray'),plt.title('disparity'),plt.xticks([]),plt.yticks([])
#plt.subplot(121),plt.imshow(img_L),plt.title('img_left'),plt.xticks([]),plt.yticks([])
#plt.subplot(122),plt.imshow(disparity),plt.title('disparity'),plt.xticks([]),plt.yticks([])
plt.show()
cv2.imwrite('depth_map.png', disparity)
"""
import cv2
left_img = cv2.imread('tsukuba_l.png', 0)
right_img = cv2.imread('tsukuba_r.png', 0)
matching = cv2.createStereoBM(numDisparities=16, blockSize=25)
depth_map = matching.compute(left_img, right_img)
cv2.imwrite('depth_map.png', depth_map
"""