Можно изменить параметры устройства камеры с помощью проекта Aravis github - PullRequest
0 голосов
/ 12 марта 2019

Код указан ниже.

Строка: device.set_string_feature_value ('PixelCoding', 'Raw') не работает. По умолчанию для pixelCoding установлено значение по умолчанию (Mono)

Я устал ставить строки: device.set_integer_feature_value ('TLParamsLocked', 0) device.set_integer_feature_value ('TLParamsLocked', 1) чтобы увидеть, не позволяло ли это обновить параметры, но это не сработало.

Дайте мне знать, если вам нужно что-то более детальное.

ссылка на проект: https://github.com/AravisProject/aravis

import sys
import gi 
import numpy

gi.require_version('Aravis', '0.6')
from gi.repository import Aravis

Aravis.enable_interface("Fake")

try:
    if len(sys.argv) > 1:
        camera = Aravis.Camera.new(sys.argv[1])
    else:
        camera = Aravis.Camera.new(None)
except:
    print("No camera found")
    exit()

camera.set_region(0,0,512,640)
camera.set_frame_rate(30.0)

device = camera.get_device()
device.set_integer_feature_value('TLParamsLocked', 0)


device.set_string_feature_value('SensorGainMode', 'HighGainMode')
device.set_string_feature_value('TemperatureLinearMode', 'On')
device.set_string_feature_value('TemperatureLinearResolution', 'High')
device.set_string_feature_value('PixelFormat', 'MONO16')
print device.get_boolean_feature_value('TLParamsLocked')
device.set_string_feature_value('PixelCoding', 'Raw')

print("pixel coding")
print device.get_string_feature_value('PixelCoding')
print device.get_string_feature_value('PixelFormat')

payload = camera.get_payload()

[x,y,width,height] = camera.get_region()

print("Camera vendor : %s" %(camera.get_vendor_name()))
print("Camera model  : %s" %(camera.get_model_name()))
print("Camera id     : %s" %(camera.get_device_id()))
print("ROI           : %dx%d at %d,%d" %(width, height, x, y))
print("Payload       : %d" %(payload))
print("Pixel format  : %s" %(camera.get_pixel_format_as_string()))

stream = camera.create_stream(None, None)


for i in range(0,10):
    stream.push_buffer(Aravis.Buffer.new_allocate(payload))

print("Start acquisition")

camera.start_acquisition()

print("Acquisition")

for i in range(0,20):
    buffer = stream.pop_buffer()
    data = buffer.get_data()

    img_data = numpy.ndarray(buffer=data, dtype=numpy.uint16, shape=(camera.get_region()[3], camera.get_region()[2], 1))
    #print img_data[0]
    #numpy.savetxt("foo.csv", img_data, delimiter=",")
    if buffer:
        stream.push_buffer(buffer)

print("Stop acquisition")

camera.stop_acquisition()
device.set_integer_feature_value('TLParamsLocked', 1 )

1 Ответ

0 голосов
/ 21 марта 2019

Выяснил, что PixelCoding камеры не может быть изменен пользователем. Проверено с помощью приложения GEV DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...