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
## 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()
#############################################
Comment 0
No. | Subject | Author | Date | Views |
---|---|---|---|---|
10 | New software resources | me | 2024.02.20 | 77 |
9 | Simple Attraction & Repulsion of Swarm practice | me | 2024.02.01 | 80 |
8 |
My Simple 2D Inverse Kinematics with BGRABitmat library [2]
![]() | me | 2024.01.21 | 109 |
7 |
My Simple 2D Inverse Kinematics with BGRABitmat library [1]
![]() | me | 2024.01.20 | 86 |
6 |
Inverse Kinematic with AI
![]() | me | 2024.01.19 | 81 |
5 |
Inverse Kinematic in 10 min. from YouTube
![]() | me | 2024.01.19 | 74 |
4 | My notebook system camera test | me | 2024.01.19 | 76 |
» |
Binocular Cam
![]() | me | 2024.01.14 | 76 |
2 | Object Pascal with MPU-9250 | me | 2023.10.06 | 84 |
1 |
Intro (Keeps changing)
![]() | me | 2023.09.28 | 89 |