如何在TrackerCSRT上使用setInitialMask?


问题内容

TrackerCSRT用于视频中的对象跟踪,当前我在跟踪器上使用init方法来设置region of interest

tracker = cv2.TrackerCSRT_create()
tracker.init(frame, region_of_interest)

感兴趣区域包括我的对象,但也包括与背景或其他对象无关的像素。

我想使用遮罩来细化我感兴趣的像素。查看文档,可以看到版本setInitialMask上的C++方法,但是在Python包装器中找不到等效的方法。

我如何设置一个面具TrackerCSRTopenCVPython


问题答案:

我发出了一个拉取请求,以启用对Python和Java使用cv
:: TrackerCSRT :: setInitialMask()。

另外,以下python代码可能对使用params很有用。

tracker = cv2.TrackerCSRT_create()
tracker.save("default_csrt.xml") // saves default values of the Tracker
                                    you can rename default_csrt.xml-> custom_csrt.xml 
                                    and change values in it and use it load params

fs = cv2.FileStorage("custom_csrt.xml",cv2.FILE_STORAGE_READ)
fn = fs.getFirstTopLevelNode()
tracker.read(fn)