У меня есть программа C ++, которая непрерывно берет кадры глубины от датчика kinect (usung opencv) и сохраняет их в png.
У меня есть еще один скрипт MATLAB, который читает эти изображения и обрабатывает их.
Проблема в том, что MATLAB не может прочитать png, поскольку программа на C ++, вероятно, перезаписывает файл быстрее, чем MATLAB может его прочитать. Я подумал, что если изображение записывает и читает можно синхронизировать, проблема может быть решена.
Что может быть самым простым способом добиться этого? Я готов нанести удар по производительности, пока решение работает.
Создайте временный пустой / однобайтовый файл, присутствие которого указывает, что программа C ++ написала новый фрейм, затем скажите C ++ подождать, пока Matlab удалил, прочитайте png и напишите другой временный файл, чтобы указать, что он закончил?
Если Matlab всегда медленнее, чем C ++, обрабатывает один кадр, просто попросите программу на C ++ каждый раз писать новый кадр с последовательной нумерацией, а затем Matlab удаляет только что прочитанный кадр. Таким образом, вы получаете «буфер» и используете только дисковое пространство, необходимое для правильной работы обеих программ.