UPDATE Vision 更新图像漾SDK,补充彩色图与深度图对齐方式
This commit is contained in:
109
Vision/tool/tuyang/parameter_settings.py
Normal file
109
Vision/tool/tuyang/parameter_settings.py
Normal file
@ -0,0 +1,109 @@
|
||||
'''
|
||||
Description:
|
||||
Author: zxy
|
||||
Date: 2023-07-14 09:48:00
|
||||
LastEditors: zxy
|
||||
LastEditTime: 2024-11-25 11:36:57
|
||||
'''
|
||||
import pcammls
|
||||
from pcammls import *
|
||||
import cv2
|
||||
import numpy
|
||||
import sys
|
||||
import os
|
||||
|
||||
|
||||
def main():
|
||||
cl = PercipioSDK()
|
||||
|
||||
dev_list = cl.ListDevice()
|
||||
for idx in range(len(dev_list)):
|
||||
dev = dev_list[idx]
|
||||
print ('{} -- {} \t {}'.format(idx,dev.id,dev.iface.id))
|
||||
if len(dev_list)==0:
|
||||
print ('no device')
|
||||
return
|
||||
if len(dev_list) == 1:
|
||||
selected_idx = 0
|
||||
else:
|
||||
selected_idx = int(input('select a device:'))
|
||||
if selected_idx < 0 or selected_idx >= len(dev_list):
|
||||
return
|
||||
|
||||
sn = dev_list[selected_idx].id
|
||||
|
||||
handle = cl.Open(sn)
|
||||
if not cl.isValidHandle(handle):
|
||||
err = cl.TYGetLastErrorCodedescription()
|
||||
print('no device found : ', end='')
|
||||
print(err)
|
||||
return
|
||||
|
||||
err = cl.DeviceStreamEnable(handle, PERCIPIO_STREAM_COLOR)
|
||||
if err:
|
||||
print('device stream enable err:{}'.format(err))
|
||||
return
|
||||
|
||||
#bool:color aec
|
||||
aec = cl.DeviceGetParameter(handle, TY_COMPONENT_RGB_CAM, TY_BOOL_AUTO_EXPOSURE)
|
||||
if aec.isEmpty():
|
||||
print('aec is not support!')
|
||||
else :
|
||||
print('current aec status : {}'.format(aec.toBool()))
|
||||
|
||||
#disable color aec
|
||||
aec = cl.DevParamFromBool(False)
|
||||
err = cl.DeviceSetParameter(handle, TY_COMPONENT_RGB_CAM, TY_BOOL_AUTO_EXPOSURE, aec)
|
||||
print('aec close result : ', end='')
|
||||
print(err)
|
||||
|
||||
#int:color exposure time
|
||||
exp = cl.DeviceGetParameter(handle, TY_COMPONENT_RGB_CAM, TY_INT_EXPOSURE_TIME)
|
||||
if exp.isEmpty():
|
||||
print('exposure time is not support!')
|
||||
else :
|
||||
print('current exposure time status : {}, range : {} - {}, inc : {}'.format(exp.toInt(), exp.mMin(), exp.mMax(), exp.mInc()))
|
||||
|
||||
exposure_time = int(input('Enter exposure time:'))
|
||||
exp = cl.DevParamFromInt(exposure_time)
|
||||
err = cl.DeviceSetParameter(handle, TY_COMPONENT_RGB_CAM, TY_INT_EXPOSURE_TIME, exp)
|
||||
print('set color exposure time result : ', end='')
|
||||
print(err)
|
||||
|
||||
image_mode = cl.DeviceGetParameter(handle, TY_COMPONENT_RGB_CAM, TY_ENUM_IMAGE_MODE)
|
||||
if image_mode.isEmpty():
|
||||
print('color image mode is not support!')
|
||||
else :
|
||||
list = image_mode.eList()
|
||||
for idx in range(len(list)):
|
||||
mode = list[idx]
|
||||
print('{}: {}x{} - {}'.format(idx, cl.Width(mode), cl.Height(mode), cl.Description(mode)))
|
||||
|
||||
index = int(input('Enter image mode index:'))
|
||||
image_mode = cl.DevParamFromEnum(cl.Value(list[index]))
|
||||
err = cl.DeviceSetParameter(handle, TY_COMPONENT_RGB_CAM, TY_ENUM_IMAGE_MODE, image_mode)
|
||||
|
||||
cl.DeviceStreamOn(handle)
|
||||
img_parsed_color = image_data()
|
||||
while True:
|
||||
image_list = cl.DeviceStreamRead(handle, 2000)
|
||||
for i in range(len(image_list)):
|
||||
frame = image_list[i]
|
||||
if frame.streamID == PERCIPIO_STREAM_COLOR:
|
||||
img_color = frame
|
||||
|
||||
cl.DeviceStreamImageDecode(img_color, img_parsed_color)
|
||||
mat_undistortion_color = img_parsed_color.as_nparray()
|
||||
cv2.imshow('rgb', mat_undistortion_color)
|
||||
|
||||
k = cv2.waitKey(10)
|
||||
if k==ord('q'):
|
||||
break
|
||||
|
||||
cl.DeviceStreamOff(handle)
|
||||
cl.Close(handle)
|
||||
pass
|
||||
|
||||
if __name__=='__main__':
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user