Вы должны неправильно понимать спецификацию YAML, потому что то, что вы производите с кодом, не является файлом YAML.
Через ключах отображения YAML файлов должен быть уникальными в соответствии с Определения для generic mapping (и вы используете общее отображение, как вы не задающий тег):
Definition:
Represents an associative container, where each key is unique in the
association and mapped to exactly one value. YAML places no restrictions on
the type of keys; in particular, they are not restricted to being scalars.
Example bindings to native types include Perl’s hash, Python’s dictionary,
and Java’s Hashtable.
реальной проблемы заключается что вы пытаетесь сделать простой YAML-эмиттер, выполняющий строчную запись. Вы должны были создать структуру данных, которая вам нужна в структуре C++ и emitted that, тогда YAML был бы прав (если излучатель не глючит).
В зависимости от того, какой структуры файла, который вы выбрали, вы, возможно, получили:
%YAML:1.0
- features: 1.5302167832851410e-01
- features: 1.0552208870649338e-01
- features: 1.6659785807132721e-01
- features: 2.3539969325065613e-01
- features: 2.0810306072235107e-01
- features: 1.2627227604389191e-01
- features: 8.0759152770042419e-02
- features: 6.4930714666843414e-02
- features: 6.1364557594060898e-02
- features: 2.1614919602870941e-01
- features: 1.4714729785919189e-01
- features: 1.5476198494434357e-01
(последовательность отображений одиночного ключа/значения) или:
%YAML:1.0
features:
- 1.5302167832851410e-01
- 1.0552208870649338e-01
- 1.6659785807132721e-01
- 2.3539969325065613e-01
- 2.0810306072235107e-01
- 1.2627227604389191e-01
- 8.0759152770042419e-02
- 6.4930714666843414e-02
- 6.1364557594060898e-02
- 2.1614919602870941e-01
- 1.4714729785919189e-01
- 1.5476198494434357e-01
(отображение одного ключ к единственному значению, которое является последовательностью)
Как вы сами испытали, нетривиально создать правильный YAML для структуры данных, даже более простой, чем при использовании строковой записи. Если начать с соответствующей структурой данных и испускают эту структуру, вы также знаете, что вы можете использовать ту же самую структуру, чтобы прочитать его обратно.
В моем опыте то же самое справедливо и для генерации XML/HTML/Файлы CSV/INI, имеющие правильную структуру данных, и использование излучателя обходит ошибки в выходном формате, компенсируя любую немного более высокую сложность исходного кода.
Я думаю, выше не будет работать. FileStorage - это в основном хранилище ключей, ваши ключи не уникальны. Что такое dest_ptr? вы не можете положить его в cv :: Mat или такой? (легче читать) – berak
Это функции HOG только для блоков. С ниже я получаю все нули. Я пытаюсь понять это @berak – shah