列舉型屬性(enumeration properties)是指那些會回傳並接受字串值的屬性,並提供一組可選的有效字串清單。例如,相機的像素格式可能包含「Mono8」、「Mono16」、「BayerRG8」等。可以使用 DevicePropertyMap.FindEnumeration() 函式來取得可選清單。此函式會接收屬性名稱作為參數,例如「PixelFormat」、「BalanceWhiteMode」等,並回傳一個列舉物件(enumeration)。

C#:

var formats = grabber.DevicePropertyMap.FindEnumeration("PixelFormat");
foreach (var format in formats.Entries)
{
    Console.WriteLine($"{format.Name}");
}

Python:

formats = grabber.device_property_map.find_enumeration(ic4.PropId.PIXEL_FORMAT)
for i,format in enumerate(formats.entries):
        print(f"{i} : {format.name}")

列舉型屬性可以使用DevicePropertyMap.SetValue() 函式來設定:grabber.DevicePropertyMap.SetValue("BalanceWhiteMode", "WhiteBalanceMode_Temperature"); 或者,如果有使用者選擇以及選定的索引(selected index):

C#:

grabber.DevicePropertyMap.SetValue("BalanceWhiteMode", WhiteBalanceModes.Entries.ToArray()[1].Name);

Python:

grabber.device_property_map.set_value(ic4.PropId.PIXEL_FORMAT, formats.entries[selected_index].name )

C/C++ 程式碼也類似。

如有進一步問題,請使用我們的客服管道 contact form