我对Python中的OpenCV 3+还是个新手。在我看来,Python下的FileStorage不支持例如writeObj()方法。是否可以在Python语言中使用OpenCV 3+将SimpleBlobDetector_create保存为XML或YAML文件?另一种说法是:使用Python,我可以保存不是数值数组或标量(例如对象)的OpenCV /YAML数据吗?
发布于 2018-09-20 02:43:44
我让问题变得比必要的困难得多。解决方案很简单:
# 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()
您可以将此文件作为输入读取,而不是在每次要调整参数时摆弄代码。
发布于 2018-06-01 06:00:44
我最近在将FileStorage与XML或YAML一起使用时遇到了一些麻烦(这似乎是OpenCV源代码中的某种bug )。我建议您尝试使用JSON。为此,只需将文件名更改为XXXX.json即可。如果您也保存自构造结构,只需将该结构构造为一个YAML,并将文件名更改为.json。
我希望这对你有更大的帮助。
问候你,大卫
https://stackoverflow.com/questions/50630168
复制相似问题