![Matrix Vision mvHYPERION-32R16 Скачать руководство пользователя страница 117](http://html1.mh-extra.com/html/matrix-vision/mvhyperion-32r16/mvhyperion-32r16_technical-manual_1741405117.webp)
14.3
Using
113
#import numpy
devMgr = acquire.DeviceManager()
for i in range(devMgr.deviceCount()):
pDev = devMgr.getDevice(i)
print("[" + str(i) + "]: " + pDev.serial.read() + "(" + pDev.product.read() + ", " + pDev.family.read(), end=’’)
if pDev.interfaceLayout.isValid:
conditionalSetProperty(pDev.interfaceLayout, acquire.dilGenICam)
print(", interface layout: " + pDev.interfaceLayout.readS(), end=’’)
if pDev.acquisitionStartStopBehaviour.isValid:
conditionalSetProperty(pDev.acquisitionStartStopBehaviour, acquire.assbUser)
print(", acquisition start/stop behaviour: " + pDev.acquisitionStartStopBehaviour.readS(), end=’’)
if pDev.isInUse():
print(", !!!ALREADY IN USE!!!", end=’’)
print(")")
print("Please enter the number in front of the listed device followed by [ENTER] to open it: ", end=’’)
devNr = int(raw_input())
if (devNr < 0) or (devNr >= devMgr.deviceCount()):
print("Invalid selection!")
sys.exit(-1)
pDev = devMgr.getDevice(devNr)
pDev.open()
print("Please enter the number of buffers to capture followed by [ENTER]: ", end=’’)
framesToCapture = int(raw_input())
if framesToCapture < 1:
print("Invalid input! Please capture at least one image")
sys.exit(-1)
# The mvDisplay library is only available on Windows systems for now
isDisplayModuleAvailable = platform.system() == "Windows"
if isDisplayModuleAvailable:
display = acquire.ImageDisplayWindow("A window created from Python")
else:
print("The mvIMPACT Acquire display library is not available on this(’" + platform.system() + "’) system. Consider using the PIL(Python Image Library) and numpy(Numerical Python) packages instead. Have a look at the source code of this application to get an idea how.")
# For systems with NO mvDisplay library support
#channelType = numpy.uint16 if channelBitDepth > 8 else numpy.uint8
fi = acquire.FunctionInterface(pDev)
statistics = acquire.Statistics(pDev)
while fi.imageRequestSingle() == acquire.DMR_NO_ERROR:
print("Buffer queued")
pPreviousRequest = None
manuallyStartAcquisitionIfNeeded(pDev, fi)
for i in range(framesToCapture):
requestNr = fi.imageRequestWaitFor(-1)
if fi.isRequestNrValid(requestNr):
pRequest = fi.getRequest(requestNr)
if pRequest.isOK():
if i%100 == 0:
print("Info from " + pDev.serial.read() +
": " + statistics.framesPerSecond.name() + ": " + statistics.framesPerSecond.readS() +
", " + statistics.errorCount.name() + ": " + statistics.errorCount.readS() +
", " + statistics.captureTime_s.name() + ": " + statistics.captureTime_s.readS())
if isDisplayModuleAvailable:
display.GetImageDisplay().SetImage(pRequest)
display.GetImageDisplay().Update()
# For systems with NO mvDisplay library support
#cbuf = (ctypes.c_char * imageSize).from_address(long(req.imageData.read()))
#arr = numpy.fromstring(cbuf, dtype = channelType)
#arr.shape = (height, width, channelCount)
#if channelCount == 1:
#
img = Image.fromarray(arr)
#else:
#
img = Image.fromarray(arr, ’RGBA’ if alpha else ’RGB’)
if pPreviousRequest != None:
pPreviousRequest.unlock()
MATRIX VISION GmbH
Содержание mvHYPERION-32R16
Страница 1: ...mvHYPERION Series Technical Manual...
Страница 16: ...12 CONTENTS MATRIX VISION GmbH...
Страница 17: ...5 1 European Union Declaration of Conformity statement 13 MATRIX VISION GmbH...
Страница 38: ...34 CONTENTS 8 1 2 9 Digital I Os Figure 10 Trigger In mvHYPERION CLx MATRIX VISION GmbH...