diff --git a/.gitignore b/.gitignore index 8ba4f56..51f7ae9 100644 --- a/.gitignore +++ b/.gitignore @@ -329,3 +329,4 @@ ASALocalRun/ # MFractors (Xamarin productivity tool) working folder .mfractor/ /1.png +/vid diff --git a/Stereo.py b/StereoBM.py similarity index 66% rename from Stereo.py rename to StereoBM.py index 8d782b5..7badeb1 100644 --- a/Stereo.py +++ b/StereoBM.py @@ -7,11 +7,12 @@ from matplotlib import pyplot as plt -img = cv2.imread("1.png", 0) +img = cv2.imread("./pic_en/2.jpg", 0) imgL = np.split(img, 2, 1)[0] imgR = np.split(img, 2, 1)[1] -stereo = cv2.StereoBM_create(numDisparities=32, blockSize=25) +stereo = cv2.StereoBM_create(numDisparities=96, blockSize=11) disparity = stereo.compute(imgL, imgR) +plt.title("BM") plt.imshow(disparity) plt.show() diff --git a/StereoSGBM.py b/StereoSGBM.py new file mode 100644 index 0000000..a2c89fc --- /dev/null +++ b/StereoSGBM.py @@ -0,0 +1,18 @@ + +import numpy as np +import matplotlib +import cv2 +import os +from matplotlib import pyplot as plt + + + +img = cv2.imread("./pic_en/2.jpg") + +imgL = np.split(img, 2, 1)[0] +imgR = np.split(img, 2, 1)[1] +stereo = cv2.StereoSGBM_create(numDisparities=96, blockSize=11) +disparity = stereo.compute(imgL, imgR) +plt.title("SGBM") +plt.imshow(disparity) +plt.show() diff --git a/StereoVidComfort.py b/StereoVidComfort.py index 716ca02..a67c290 100644 --- a/StereoVidComfort.py +++ b/StereoVidComfort.py @@ -3,21 +3,68 @@ import numpy as np import matplotlib import cv2 import os +import sys from matplotlib import pyplot as plt - +# 中文文件名无法识别 imgDirs = os.listdir("./pic_en") +def read_frame_as_jpeg(in_filename, frame_num): + out, err = ( + ffmpeg + .input(in_filename) + .filter('select', 'gte(n,{})'.format(frame_num)) + .output('pipe:', vframes=1, format='image2', vcodec='mjpeg') + .run(capture_stdout=True) + ) + return out -for imgDir in imgDirs: - dir = "./pic_en/"+imgDir - print (dir) - img = cv2.imread(dir, 0) +# ffmpeg.input("./vid/venom.mkv") +# ffmpeg. - imgL = np.split(img, 2, 1)[0] - imgR = np.split(img, 2, 1)[1] - stereo = cv2.StereoBM_create(numDisparities=64, blockSize=11) - disparity = stereo.compute(imgL, imgR) - plt.imshow(disparity) - plt.show() +#img = read_frame_as_jpeg("./vid/venom.mkv", 648) +# print(type(img)) +#img = cv2.imdecode(img,0) +# print(img) +# cv2.imshow("img",img) +#imgL = np.split(img, 2, 1)[0] +#imgR = np.split(img, 2, 1)[1] +#stereo = cv2.StereoBM_create(numDisparities=64, blockSize=11) +#disparity = stereo.compute(imgL, imgR) +# plt.imshow(disparity) +# plt.show() + + +cap = cv2.VideoCapture('./vid/zootopia.mkv') + +totalFrame = cap.get(cv2.CAP_PROP_FRAME_COUNT) +for frameID in range(1, int(totalFrame), 1440): + cap.set(cv2.CAP_PROP_POS_FRAMES, frameID) + isSuccess, img = cap.read() + if isSuccess: + cv2.imshow('img', img) + imgL = np.split(img, 2, 1)[0] + imgR = np.split(img, 2, 1)[1] + stereo = cv2.StereoSGBM_create(numDisparities=96, blockSize=11) + disparity = stereo.compute(imgL, imgR) + plt.imshow(disparity) + plt.show() + + +#for imgDir in imgDirs: +# dir = "./pic_en/"+imgDir +# print(dir) +# img = cv2.imread(dir) + +# imgL = np.split(img, 2, 1)[0] +# imgR = np.split(img, 2, 1)[1] +# print(img.shape) +# print(imgL.shape) +# print(imgR.shape) +# cv2.imshow("img", img) +# stereo = cv2.StereoSGBM_create(numDisparities=96, blockSize=11) +# disparity = stereo.compute(imgL, imgR) + +# plt.imshow(disparity) +# plt.show()