xcode — Создание вектора OpenCV в C ++ и сохранение в текстовый файл

У меня есть очень простой вопрос о хранении векторов в OpenCV, но, поскольку я всегда работал в MATLAB, мне действительно трудно выполнять одни и те же векторные операции в C ++.

Итак, вот моя проблема: я вычислил оптический поток, используя базовые функции cvGoodFeaturesToTrack () и cvCalcOpticalFlowPyrLK (), и нашел конечные точки линий потока и показал их на изображении в виде линий оптического потока.

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

Я действительно не знаю, как я могу создать эти векторы, которые хранят эти точки и сохраняют их в текстовом файле.

Кто-нибудь может помочь?

Спасибо,

Яши

1

Решение

Основываясь на комментариях ОП по этому вопросу, я думаю, что это хороший способ сделать это:

std::ofstream matlabFile;
matlabFile.open("pointsOutput.m");
matlabFile << "Corners = [ ...\n";
for (int i = 0; i < MAX_CORNERS; ++i) {
matlabFile << corners2[i].x << " " << corners2[i].y << "; ...\n";
}
matlabFile << "];";
matlabFile.close();

Этот код должен дать вам следующий файл в локальном каталоге:

pointsOutput.m:

Corners = [ ...
1 2; ...
3 4; ...
];

который в Matlab даст вам следующую матрицу:

Corners =
1 2
3 4

Предположим, у вас есть две точки в этом списке с x и y = 1 и 2, 3 и 4.

Надеюсь это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]