光道視覺科技股份有限公司
關於我們 最新消息 產品介紹 下載專區 技術問題 聯絡我們
Sitemap 回首頁 繁體中文 English
技術問題

PyOVK/PyOES的相機運作模式差異

許多客戶詢問PyOVK/PyOES的差異相機運作模式的問題 以下簡述使用方式
[Python語言]
Python語言只要沒有搭配GUI的工具使用 都無法以事件驅動的模式開發軟體 也就是說相機相關的事件皆無法使用 此時SnapAndWait/AwaitSnap這類拍完才返回的函式就可以派上用場
[PyOVK/PyOES差異]
1. 使用環境
PyOVK支援Python3.8.x使用於Windows系統(Windows 7~10/Windows 11, x86/x64處理器平台), 根植於OVK Framework視覺軟體平台
PyOES支援Python3.8.x使用於Linux系統(Ubuntu 20.04, x64或ARM64處理器平台), 根植於OVK Embedded Suite (OES)視覺軟體平台

2. 模組名稱
PyOVK引入方式為各個模組分別引入, 例如 :
from PyOVK.AxAltairUDrv import *
from PyOVK.AxOvkBase import *
from PyOVK.AxOvkImage import *
from PyOVK.AxOvkColor import *
from PyOVK.AxOvkMsr import *
from PyOVK.AxOvkBlob import *
from PyOVK.AxOvkPat import *
from PyOVK.AxOvkPat2 import *
from PyOVK.AxOvkMarkInsp import *
from PyOVK.AxOvkMarkInsp2 import *
from PyOVK.AxOvkBarcodeTools import *
from PyOVK.AxOvkGameTools import *
from PyOVK.AxOvkGeometry import *
from PyOVK.AxOvkTexture import *
...等等

PyOES引入方式為全模組單次引入即可, 例如 :
from PyOES import *
引入模組後, 直接使用元件名稱產生物件即可使用, 例如 :
cam=AxAltairU()
cam.QuickCreateChannel()

3. 屬性函式名稱
完全一致但命名方式有些微差異 :
PyOVK : 屬性函式名稱與技術文件一致
PyOES : 屬性函式名稱與技術文件一致但屬性部分些微不同
屬性讀取時需前面加上"Get"並以函式方式來呼叫
屬性寫入時需前面加上"Set"並以函式方式來呼叫
例如 : 存取AxAltairU的ChannelState屬性
cam=AxAltairU()
a=cam.GetChannelState()
b=1
cam.SetChannelState(b)

[Video/Standby模式]
在Windows/Linux的環境下面相機的Video/Standby模式都可以使用
差別是Video模式一直在背景拍攝影像直到收到硬體的trigger或使用者下達Live/Snap/SnapAndWait才送回當前影像而Standby模式下相機則處於暫停狀態直到使用者下達Snap/SnapAndWait才發出軟體命令拍攝並送回影像

[SnapAndWait/AwaitSnap函式]
SnapAndWait函式不論在Video/Standby模式都可以使用
差別的是Video模式相機一直在背景不間斷拍攝直到收到硬體的trigger或使用者下達SnapAndWait才送回一張當前影像,Standby模式相機則處於暫停拍攝狀態直到使用者下達SnapAndWait才發出軟體命令拍攝並送回一張影像
AwaitSnap函式只能在Standby模式使用,因為AwaitSnap函式會等待一個硬體的trigger直到trigger發生或是SnapTimeout的時間結束仍未有trigger才會返回,返回後讀取ActiveSurfaceHandle以得到拍攝的影像
Video模式相機呼叫AwaitSnap會因此模式下硬體trigger被關閉(硬體trigger只有在Standby模式才開啟)等不到trigger而timeout返回
Standby模式下呼叫AwaitSnap才是正確的用法

Copyright ©2008 Internet Service by
AISYS Vison company.