我对Python中的OpenCV 3+相当新。在我看来,Python下的FileStorage不支持,例如,writeObj()方法。是否可以使用Python中的OpenCV 3+将SimpleBlobDetector_create保存为XML或YAML文件?另一种说法是:使用Python OpenCV,我可以保存不是numpy数组或标量(例如对象)的XML / YAML数据吗?
答案 0 :(得分:0)
在使用带有XML或YAML的FileStorage时,我最近遇到了一些麻烦(它似乎是OpenCV源代码中的某种错误)。我建议你用JSON试试。在奥德这样做,只需将文件名更改为XXXX.json。如果你也保存自构造的结构,只需将结构构造为YAML并将文件名更改为.json。
我希望这会对你有所帮助。
问候,大卫
答案 1 :(得分:0)
我使问题变得更加困难。解决方案很简单:
# 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()
您可以将此文件作为输入读取,而不必在每次要调整参数时都弄不懂代码。