我用python制作了所有操作ptz的工具
我不确定是否需要集中注意力。在VIF主页上,它似乎显示为焦点移动
我不知道要获取和编辑什么值,所以我会上传它
即使在调整虹膜(光圈)值时,降低该值也可以,但如果调整+,该值也不会发生很好的变化
在这种情况下,我认为
ptz=mycam.create_imaging_service()
如果您通过ptz.GetOptions()查看选项,Iris的最大值为0,最小值为-22
media=mycam.create\u media\u service()
media_profile=media.GetVideoSources()[0]
这里,相机的图像设置加载了GetVideoSources。从这个值,在成像。曝光
有具有当前虹膜值的虹膜、具有虹膜最大值的MaxIris和具有最小值的MinIris
如果当前虹膜值为-5,MinIris取-22,而MaxIris取当前虹膜值-5
看起来,即使我每次加载它时都带上更改的值,它也不会更改,但如果您知道如何修复它,请
@api_view(['POST'])
def getMovePTZ(request):
logger.debug("getMovePTZ start : %s", request.data)
ptz_type = request.data.get('data')['ptz_type']
ptz_direction = request.data.get('data')['ptz_direction']
ptz_active = request.data.get('data')['ptz_active']
Min = {}
Max = {}
if ptz_type == 'iris':
# Create img service object
ptz = mycam.create_imaging_service()
imgrequest = ptz.create_type('GetImagingSettings')
# Get target profile
media_profile = media.GetVideoSources()[0]
imgrequest.VideoSourceToken = media_profile.token
img_configuration_options = ptz.GetOptions(imgrequest)
moverequest = ptz.create_type('SetImagingSettings')
moverequest.VideoSourceToken = media_profile.token
if moverequest.ImagingSettings is None:
moverequest.ImagingSettings = ptz.GetImagingSettings({'VideoSourceToken': media_profile.token})
Min['iris'] = img_configuration_options.Exposure.Iris.Min
Max['iris'] = img_configuration_options.Exposure.Iris.Max
else:
# Create ptz service object
ptz = mycam.create_ptz_service()
ptzrequest = ptz.create_type('GetConfigurationOptions')
# Get target profile
media_profile = media.GetProfiles()[0]
ptzrequest.ConfigurationToken = media_profile.PTZConfiguration.token
ptz_configuration_options = ptz.GetConfigurationOptions(ptzrequest)
moverequest = ptz.create_type('ContinuousMove')
moverequest.ProfileToken = media_profile.token
if moverequest.Velocity is None:
moverequest.Velocity = ptz.GetStatus({'ProfileToken': media_profile.token}).Position
moverequest.Velocity.PanTilt.space = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].URI
moverequest.Velocity.Zoom.space = ptz_configuration_options.Spaces.ContinuousZoomVelocitySpace[0].URI
direction = {
'panning': move_panning,
'upleft': move_upleft,
'up': move_up,
'upright': move_upright,
'left': move_left,
'right': move_right,
'downleft': move_downleft,
'down': move_down,
'downright': move_downright,
'wide': zoom_wide,
'tele': zoom_tele,
'in': iris_in,
'out': iris_out,
}
func = direction[ptz_direction]
if ptz_type == 'iris':
func(ptz, moverequest, ptz_active)
else:
func(ptz, moverequest, Min, Max)
return Response(None)
def ptz_move(ptz, request, active):
if active:
ptz.ContinuousMove(request)
else:
ptz.Stop({'ProfileToken': request.ProfileToken})
def move_panning(ptz, request, active):
request.Velocity.PanTilt.x = XMOVE
request.Velocity.PanTilt.y = 0
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_up(ptz, request, active):
request.Velocity.PanTilt.y = YMOVE
request.Velocity.PanTilt.x = 0
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_down(ptz, request, active):
request.Velocity.PanTilt.y = -YMOVE
request.Velocity.PanTilt.x = 0
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_right(ptz, request, active):
request.Velocity.PanTilt.x = XMOVE
request.Velocity.PanTilt.y = 0
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_left(ptz, request, active):
request.Velocity.PanTilt.x = -XMOVE
request.Velocity.PanTilt.y = 0
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_upleft(ptz, request, active):
request.Velocity.PanTilt.x = -XMOVE
request.Velocity.PanTilt.y = YMOVE
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_upright(ptz, request, active):
request.Velocity.PanTilt.x = XMOVE
request.Velocity.PanTilt.y = YMOVE
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_downleft(ptz, request, active):
request.Velocity.PanTilt.x = -XMOVE
request.Velocity.PanTilt.y = -YMOVE
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def move_downright(ptz, request, active):
request.Velocity.PanTilt.x = XMOVE
request.Velocity.PanTilt.y = -YMOVE
request.Velocity.Zoom.x = 0
ptz_move(ptz, request, active)
def zoom_wide(ptz, request, active):
request.Velocity.Zoom.x = -ZMOVE
request.Velocity.PanTilt.x = 0
request.Velocity.PanTilt.y = 0
ptz_move(ptz, request, active)
def zoom_tele(ptz, request, active):
request.Velocity.Zoom.x = ZMOVE
request.Velocity.PanTilt.x = 0
request.Velocity.PanTilt.y = 0
ptz_move(ptz, request, active)
def iris_in(ptz, request, Min, Max):
request.ImagingSettings.Exposure.Iris -= 1
if request.ImagingSettings.Exposure.Iris < Min['iris']:
request.ImagingSettings.Exposure.Iris = Min['iris']
ptz.SetImagingSettings(request)
def iris_out(ptz, request, Min, Max):
request.ImagingSettings.Exposure.Iris += 1
if request.ImagingSettings.Exposure.Iris > Max['iris']:
request.ImagingSettings.Exposure.Iris = Max['iris']
ptz.SetImagingSettings(request)
目前没有回答
相关问题 更多 >
编程相关推荐