0

pyueye ライブラリを使用して ML カメラを実行しようとしていますが、ctypes で問題が発生しています。1 つの関数には「ctypes インスタンス」型の引数が必要です。考えられるすべてのバリエーションを試してみましたが、ctypes ライブラリでこれを生成する方法がわかりません。このライブラリを使用した python のドキュメントはありませんが、使用しようとしている関数の C ドキュメントは次のとおりです。

Syntax

INT is_SetAutoParameter (HIDS hCam, INT param, double* pval1, double* pval2)

Example 1

//Enable auto gain control:

double dEnable = 1;

int ret = is_SetAutoParameter (hCam, IS_SET_ENABLE_AUTO_GAIN, &dEnable, 0);

Pythonで受け取っているコードとその後のエラーは次のとおりです。

nRet = ueye.is_SetAutoParameter(hCam, ueye.IS_SET_ENABLE_AUTO_GAIN, ctypes.byref(ctypes.c_long(1)), ctypes.byref(ctypes.c_long(0)))

Error:
ret = _is_SetAutoParameter(_hCam, _param, ctypes.byref(pval1), ctypes.byref(pval2))
TypeError: byref() argument must be a ctypes instance, not 'CArgObject'

ctypes インスタンスに関するアドバイスはありますか? ありがとう

編集:最小限の再現可能な例

from pyueye import ueye
import ctypes

class Turfcam:
    def main(self):
        turfcam.take_photo()

    def take_photo(self):
        hCam = ueye.HIDS(0)
        pval1 = ctypes.c_double(1)
        pval2 = ctypes.c_double(0)
        nRet = ueye.is_SetAutoParameter(hCam, ueye.IS_SET_ENABLE_AUTO_GAIN, ctypes.byref(pval1), ctypes.byref(pval2))

        # Camera Init
        nRet = ueye.is_InitCamera(hCam, None)

if __name__ == "__main__":
    turfcam = Turfcam()
    turfcam.main()
4

1 に答える 1