OpenCV 3.2+ FileStorage 会将 SimpleBlobDetector_create 对象保存在 XML 或 YML 中吗?
Will OpenCV 3.2+ FileStorage save the SimpleBlobDetector_create object in XML or YML?
我在 Python 中对 OpenCV 3+ 相当陌生。在我看来,Python 下的 FileStorage 不支持,例如 writeObj() 方法。是否可以在 Python 中使用 OpenCV 3+ 将 SimpleBlobDetector_create 保存到 XML 或 YAML 文件?另一种表达方式是:使用 Python OpenCV,我可以保存 XML/YAML 不是 numpy 数组或标量(例如对象)的数据吗?
我最近在将 FileStorage 与 XML 或 YAML 一起使用时遇到了一些麻烦(这似乎是 OpenCV 源代码中的某种错误)。我建议您尝试使用 JSON。为此,只需将文件名更改为 XXXX.json。如果您也保存自己构建的结构,只需像 YAML 一样构建结构并将文件名更改为 .json.
我希望这对你有进一步的帮助。
问候,大卫
我让问题变得比必要的更难。解决方法很简单:
# 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()
您可以将此文件作为输入读入,而不是每次要调整参数时都摆弄代码。
我在 Python 中对 OpenCV 3+ 相当陌生。在我看来,Python 下的 FileStorage 不支持,例如 writeObj() 方法。是否可以在 Python 中使用 OpenCV 3+ 将 SimpleBlobDetector_create 保存到 XML 或 YAML 文件?另一种表达方式是:使用 Python OpenCV,我可以保存 XML/YAML 不是 numpy 数组或标量(例如对象)的数据吗?
我最近在将 FileStorage 与 XML 或 YAML 一起使用时遇到了一些麻烦(这似乎是 OpenCV 源代码中的某种错误)。我建议您尝试使用 JSON。为此,只需将文件名更改为 XXXX.json。如果您也保存自己构建的结构,只需像 YAML 一样构建结构并将文件名更改为 .json.
我希望这对你有进一步的帮助。
问候,大卫
我让问题变得比必要的更难。解决方法很简单:
# 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()
您可以将此文件作为输入读入,而不是每次要调整参数时都摆弄代码。