如何获取Python类型对象的参数名称?
获取OpenCV类型对象的参数名称列表
我需要一个函数或方法,能够返回类型对象的参数名称列表,示例如下:
- 处理
cv2.BFMatcher时,返回['normType', 'crossCheck'] - 处理
cv2.FlannBasedMatcher时,返回['index_params', 'search_params']
(如果可行,还希望能获取index_params和search_params这类字典参数的键,例如['algorithm', 'table_number', 'key_size', 'multi_probe_level']等)
我尝试过inspect.getfullargspec等inspect模块的方法,但这些方法对OpenCV的这类类型对象无效。
使用场景
我正在编写一个函数,根据传入的参数创建(检测器、描述符、匹配器)组合,希望调用函数时直接传入三者的参数值,打算用dict(zip(params_keys, params_values))的方式构造参数字典,核心思路代码如下:
def method(detector_name, detector_params_values, descriptor_name, descriptor_params_values, matcher_name, matcher_params_values): # ... MATCHERS = {"BF": cv2.BFMatcher, "FLANN": cv2.FlannBasedMatcher} matcher_params_keys = func(matcher_name) # 这正是我需要的函数 matcher = MATCHERS[matcher_name](**dict(zip(matcher_params_keys, matcher_params_values))) # 检测器和描述符的处理逻辑类似
备注:我可能使用了错误的术语,因为不是Python专家,但希望问题表述清晰。
内容的提问来源于stack exchange,提问作者Zikromanti
相关产品推荐
相关产品推荐

