Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
uutzinger committed Jan 6, 2020
2 parents ea02552 + 7aa53fd commit bee1b50
Showing 1 changed file with 102 additions and 62 deletions.
164 changes: 102 additions & 62 deletions csicamera/test_camera.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,64 @@
import cv2
import time

# 3264 x 2464 FR = 21.0000
# 3264 x 1848 FR = 28.000001
# 1920 x 1080 FR = 29.999999
# 1280 x 720 FR = 120.000005
# 1280 x 720 FR = 59.999999

def gstreamer_pipeline(
capture_width=1280,
capture_height=720,
display_width=1280,
display_height=720,
framerate=120,
flip_method=0,
):
capture_width=1280, capture_height=720,
display_width=1280/1, display_height=720/1,
framerate=90, exposure_time= 5, # ms
flip_method=0):

exposure_time = exposure_time * 1000000 #ms to ns
exp_time_str = '"' + str(exposure_time) + ' ' + str(exposure_time) + '"'

#1280*720 = 921600
#1280*720*3=2764800

return (
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), "
"width=(int)%d, height=(int)%d, "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
"nvvidconv flip-method=%d ! "
"video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
"videoconvert ! "
"video/x-raw, format=(string)BGR ! appsink"
'nvarguscamerasrc '
'name="NanoCam" '
'do-timestamp=true '
'timeout=0 ' # 0 - 2147483647
'blocksize=-1 ' # block size in bytes
'num-buffers=-1 ' # -1..2147483647 (-1=ulimited) num buf before sending EOS
'sensor-mode=-1 ' # -1..255, IX279 0(3264x2464,21fps),1 (3264x1848,28),2(1080p.30),3(720p,60),4(=720p,120)
'tnr-strength=-1 ' # -1..1
'tnr-mode=1 ' # 0,1,2
# 'ee-mode=0' # 0,1,2
# 'ee-strength=-1 ' # -1..1
'aeantibanding=1 ' # 0..3, off,auto,50,60Hz
'bufapi-version=false ' # new buffer api
'maxperf=true ' # max performance
'silent=true ' # verbose output
'saturation=1 ' # 0..2
'wbmode=1 ' # white balance mode, 0..9 0=off 1=auto
'awblock=false ' # auto white balance lock
'aelock=true ' # auto exposure lock
'exposurecompensation=0 ' # -2..2
'exposuretimerange=%s ' # "13000 683709000"
'gainrange="1.0 10.625" ' # "1.0 10.625"
'ispdigitalgainrange="1 8" ' # "1 8"
#
'! video/x-raw(memory:NVMM), '
'width=(int)%d, '
'height=(int)%d, '
'format=(string)NV12, '
'framerate=(fraction)%d/1 '
#
'! nvvidconv flip-method=%d '
'! video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx '
#
'! videoconvert '
'! video/x-raw, format=(string)BGR '
#
'! appsink'
% (
exp_time_str,
capture_width,
capture_height,
framerate,
Expand All @@ -28,61 +68,61 @@ def gstreamer_pipeline(
)
)


cap = cv2.VideoCapture(gstreamer_pipeline(), cv2.CAP_GSTREAMER)
#cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_V4L2)
#cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_FFMPEG)

if not (cap.isOpened()):
print("Could not open video device")
else: # elp ,IX299 v4l, gstreamer
print(cap.get(cv2.CAP_PROP_POS_MSEC)) # 0 ,-1 ,0.0 ,626.595495
print(cap.get(cv2.CAP_PROP_POS_FRAMES)) # NA ELP ,-1 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_POS_AVI_RATIO)) # NA ELP ,-1 ,NA ,-1e-06
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 320 ,640 ,3264 ,1280
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 240 ,480 ,2464 ,720
print(cap.get(cv2.CAP_PROP_FPS)) # 120 ,0 ,NA ,120
print(cap.get(cv2.CAP_PROP_FOURCC)) # MJPG ,844715353 ,1448695129.0 ,NA
print(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # NA ELP ,-1 ,NA ,-1.0
print(cap.get(cv2.CAP_PROP_FORMAT)) # 16 ,-1 ,16 ,NA
print(cap.get(cv2.CAP_PROP_MODE)) # MJPG ,-1 ,0 ,NA
print(cap.get(cv2.CAP_PROP_BRIGHTNESS)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_CONTRAST)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_SATURATION)) # 0.46875 ,64 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_HUE)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_GAIN)) # 0.0 ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_EXPOSURE)) # 1.0 ,-4.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_CONVERT_RGB)) # 1.0 ,1.0 ,1.0 ,NA
print(cap.get(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U)) # NA ELP ,4600.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_RECTIFICATION)) # NA ELP ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_MONOCHROME)) # NA ELP ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SHARPNESS)) # 2.0 ,2.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_AUTO_EXPOSURE)) # 0.25 or 0.75(auto) ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_GAMMA)) # 100.0 ,100.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TEMPERATURE)) # 6500 ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TRIGGER)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TRIGGER_DELAY)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_WHITE_BALANCE_RED_V)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ZOOM)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_FOCUS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_GUID)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ISO_SPEED)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_BACKLIGHT)) # 1.0 ,3.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_PAN)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TILT)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ROLL)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_IRIS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SETTINGS)) # NA ELP ,0, ,NA ,NA
print(cap.get(cv2.CAP_PROP_BUFFERSIZE)) # 4.0 ,-1 ,4.0 ,NA
print(cap.get(cv2.CAP_PROP_AUTOFOCUS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SAR_NUM)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SAR_DEN)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_BACKEND)) # 200 ,700 ,200 ,1800
print(cap.get(cv2.CAP_PROP_CHANNEL)) # -1 ,0 ,-1.0 ,NA
print(cap.get(cv2.CAP_PROP_AUTO_WB)) # 1.0 ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_WB_TEMPERATURE)) # 6500 ,-1 ,NA ,NA
if False:
print(cap.get(cv2.CAP_PROP_POS_MSEC)) # 0 ,-1 ,0.0 ,626.595495
print(cap.get(cv2.CAP_PROP_POS_FRAMES)) # NA ELP ,-1 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_POS_AVI_RATIO)) # NA ELP ,-1 ,NA ,-1e-06
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 320 ,640 ,3264 ,1280
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 240 ,480 ,2464 ,720
print(cap.get(cv2.CAP_PROP_FPS)) # 120 ,0 ,NA ,30
print(cap.get(cv2.CAP_PROP_FOURCC)) # MJPG ,844715353 ,1448695129.0 ,NA
print(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # NA ELP ,-1 ,NA ,-1.0
print(cap.get(cv2.CAP_PROP_FORMAT)) # 16 ,-1 ,16 ,NA
print(cap.get(cv2.CAP_PROP_MODE)) # MJPG ,-1 ,0 ,NA
print(cap.get(cv2.CAP_PROP_BRIGHTNESS)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_CONTRAST)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_SATURATION)) # 0.46875 ,64 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_HUE)) # 0.5 ,0 ,NA ,0.0
print(cap.get(cv2.CAP_PROP_GAIN)) # 0.0 ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_EXPOSURE)) # 1.0 ,-4.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_CONVERT_RGB)) # 1.0 ,1.0 ,1.0 ,NA
print(cap.get(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U)) # NA ELP ,4600.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_RECTIFICATION)) # NA ELP ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_MONOCHROME)) # NA ELP ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SHARPNESS)) # 2.0 ,2.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_AUTO_EXPOSURE)) # 0.25 or 0.75(auto) ,-1.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_GAMMA)) # 100.0 ,100.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TEMPERATURE)) # 6500 ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TRIGGER)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TRIGGER_DELAY)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_WHITE_BALANCE_RED_V)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ZOOM)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_FOCUS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_GUID)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ISO_SPEED)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_BACKLIGHT)) # 1.0 ,3.0 ,NA ,NA
print(cap.get(cv2.CAP_PROP_PAN)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_TILT)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_ROLL)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_IRIS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SETTINGS)) # NA ELP ,0, ,NA ,NA
print(cap.get(cv2.CAP_PROP_BUFFERSIZE)) # 4.0 ,-1 ,4.0 ,NA
print(cap.get(cv2.CAP_PROP_AUTOFOCUS)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SAR_NUM)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_SAR_DEN)) # NA ELP ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_BACKEND)) # 200 ,700 ,200 ,1800
print(cap.get(cv2.CAP_PROP_CHANNEL)) # -1 ,0 ,-1.0 ,NA
print(cap.get(cv2.CAP_PROP_AUTO_WB)) # 1.0 ,-1 ,NA ,NA
print(cap.get(cv2.CAP_PROP_WB_TEMPERATURE)) # 6500 ,-1 ,NA ,NA

# cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1080)
# cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
window_handle = cv2.namedWindow("CSI Camera", cv2.WINDOW_AUTOSIZE)
last_fps_time = time.time()
num_frames = 0
Expand Down

0 comments on commit bee1b50

Please sign in to comment.