Skip to menu

Robotics with Object Pascal

MAR (Machine of Attack & Return). V.01

( THIS IS TOY R/C LEVEL DEVICE, NOT A REAL WEAPON )

Binocular Cam

2024.01.14 20:00

me Views:76

## SPLITING

 

# THIS IS MY DEMO FOR DUAL CAM
# PURPOSE : SPLIT LEFT/RIGHT
# MADE TO WORK WITH : OV9732 Binocular Sync Camera Module
# 72 Degree, 1 Million Pixel

import cv2

cap = cv2.VideoCapture(2)

# Must set camera WORKING camera resolution to get Left/Right side by side
# Currently working resolutions : 1280 x 480, 640 x 240
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)

i = 0
while cap.isOpened():
   ret, frame = cap.read()
   left_img = frame[:, 0:319, :]
   right_img= frame[:, 320:639, :]
   if ret:
      cv2.imshow('left', left_img)
      cv2.imshow('right', right_img)
   key = cv2.waitKey(delay=2)
   if key == ord('t'):
      cv2.imwrite('./img/test'+str(i)+'.jpg', frame)
      i += 1
   if key == ord('q') or key == 27:
      break

cap.release()   
cv2.destroyAllWindows()
 

#############################################

# SAVE 10 seconds of recording.

#

# THIS IS MY DEMO FOR DUAL CAM
# PURPOSE : FILE SAVE
# MADE TO WORK WITH : OV9732 Binocular Sync Camera Module
# 72 Degree, 1 Million Pixel

import cv2

BothEye = cv2.VideoCapture(0)

# Must set camera WORKING camera resolution to get Left/Right side by side
BothEye.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
BothEye.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)

size=(640, 240)
fps=25

videoWriter = cv2.VideoWriter('MyDualCam.avi',
   cv2.VideoWriter_fourcc('I','4','2','0'),fps,size)
   
seconds=10
numFramesRemaining = seconds * fps - 1
while BothEye.isOpened() and numFramesRemaining > 0:
   ret, frame = BothEye.read()
   if ret:
      videoWriter.write(frame)
   numFramesRemaining -= 1

BothEye.release()  

 

 

#############################################

# working resolutions : 1280 x 480

import cv2

cap = cv2.VideoCapture(2)

# Must set camera WORKING camera resolution to get Left/Right side by side
# Currently working resolutions : 1280 x 480, 640 x 240
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

i = 0
while cap.isOpened():
   ret, frame = cap.read()
   left_img = frame[:, 0:639, :]
   right_img= frame[:, 640:1279, :]
   if ret:
      cv2.imshow('left', left_img)
      cv2.imshow('right', right_img)
   key = cv2.waitKey(delay=2)
   if key == ord('t'):
      cv2.imwrite('./img/test'+str(i)+'.jpg', frame)
      i += 1
   if key == ord('q') or key == 27:
      break

cap.release()   
cv2.destroyAllWindows()

 

#############################################

# working resolutions : 2560 x 720, (15, 20, 25, 30 fps possible)

import cv2

cap = cv2.VideoCapture(2)  # 0, 1, 2, 3 ...  match with your setting
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
cap.set(cv2.CAP_PROP_FPS, 30)

# Must set camera with double resolution to get Left/Right side by side
# Currently working resolutions : 2560 x 720, 1280 x 480, 640 x 240
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 2560)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

i = 0
while cap.isOpened():
   ret, frame = cap.read()
   left_img = frame[:, 0:1279, :]     # cut left half
   right_img= frame[:, 1280:2560, :]  # cut right half
   if ret:
      cv2.imshow('left', left_img)
      cv2.imshow('right', right_img)
   key = cv2.waitKey(delay=2)
   if key == ord('t'):  # save camera input (both eyes in 1 image)
      cv2.imwrite('./img/test'+str(i)+'.jpg', frame)
      i += 1
   if key == ord('g'):  # save both eyes image seperately
      cv2.imwrite('./img/il'+str(i)+'.jpg', left_img)
      cv2.imwrite('./img/ir'+str(i)+'.jpg', right_img)
      i += 1   
   if key == ord('q') or key == 27:
      break

cap.release()   
cv2.destroyAllWindows()
 

#############################################

high_res.png

 

2d_distance_1.pngpage12.png

 

page23.png