Будет ли OpenCV 3.2+ FileStorage сохранять объект SimpleBlobDetector_create в XML или YML?

Я новичок в OpenCV 3+ в Python. Мне кажется, что FileStorage под Python не поддерживает, например, метод writeObj(). Можно ли сохранить SimpleBlobDetector_create в файл XML или YAML с помощью OpenCV 3+ в Python? Другой способ выразить это так: используя Python OpenCV, могу ли я сохранить данные XML/YAML, которые не являются массивом numpy или скаляром (например, объектом)?


person Phyzx1    schedule 31.05.2018    source источник


Ответы (2)


В последнее время у меня возникли проблемы при использовании FileStorage с XML или YAML (похоже, это какая-то ошибка в исходном коде OpenCV). Я бы порекомендовал вам попробовать это с JSON. Для этого просто измените имя файла на XXXX.json. Если вы также сохраняете структуры, созданные самостоятельно, просто создайте структуру, как если бы это был YAML, и измените имя файла на .json.

Надеюсь, это поможет вам в дальнейшем.

С уважением, Дэвид

person David W. Romero    schedule 31.05.2018

Я делал проблему намного сложнее, чем нужно. Решение простое:

# Setup SimpleBlobDetector parameters.
params = cv.SimpleBlobDetector_Params()

# Change desired parameters
params.minThreshold = 20
params.maxThreshold = 220

# Create the blob detector
detect = cv.SimpleBlobDetector_create(params)

# Write detector parameters to .yml file
fs_write = cv.FileStorage('blob_params_modified.yml',
                          cv.FILE_STORAGE_WRITE)
detect.write(fs_write)
fs_write.release()

Вы можете прочитать этот файл в качестве входных данных вместо того, чтобы возиться с кодом каждый раз, когда вы хотите настроить параметр.

person Phyzx1    schedule 19.09.2018