Поэтому я использую OpenCV и Affdex SDK для захвата изображения и обработки эмоций. Но когда камера используется другим приложением, то
// Capture an image from the camera
cv::Mat frame_image;
if (!video_capture.read(frame_image)) {}
read по-прежнему возвращает true, но, однако, frame_image.data содержит значение мусора в отладочной версии, но в выпускной версии оно пустое. Я использовал этот код в версии выпуска, чтобы определить, пустые ли данные:
bool CEmotionTracker::is_frame_data_empty(const uchar *frame_data) const
{
if (frame_data && frame_data[0] == '\0')
return true;
return false;
}
но это не будет работать в отладочной версии из-за значения мусора, и я не думаю, что это хорошая идея, чтобы проверить, содержат ли данные значение мусора, чтобы определить, содержат ли они правильные данные фрейма или нет. Есть ли способ проверить, содержит ли frame_image.data действительные данные или нет?
Редактировать:
frame_image.empty () вернет false, так что это не то, что я ищу
Задача ещё не решена.
Других решений пока нет …