Я занимаюсь разработкой простого приложения в App Designer, и я изо всех сил пытался включить видеопоток с веб-камеры.
Я сталкивался со следующим постом, но до сих пор мне не удалось заставить мое приложение работать: https://uk.mathworks.com/matlabcentral/answers/357814-how-to-create-a-custom-preview-window-for-matlab-webcam
Пока что я делаю:
Создание объекта оси в графическом интерфейсе. Это вторая цифра, поэтому она автоматически помечается как app.UIAxes2
.
Включение следующих команд в мою функцию запуска:
app.Camera = webcam; %('USB2.0 PC CAMERA')
image(app.UIAxes2,zeros(size(snapshot(app.Camera)),'uint8'));
где app.Camera
- это объект моей камеры (я включил свойство в класс), а вторая команда должна изменить размер изображения до размера видеопотока камеры. Я могу ошибаться по этому поводу.
Создание переключателя (CameraStreamSwitch
), который должен отображать видеопоток при включении (до Start
).
Создание в коде приложения следующей функции, которая активируется при каждом нажатии переключателя:
% Value changed function: CameraStreamSwitch
function CameraStreamSwitchValueChanged(app, event)
while strcmp(app.CameraStreamSwitch.Value,'Start')
im = image(app.UIAxes_2,zeros(size(snapshot(app.Camera)),'uint8'));
preview(app.Camera,im);
end
end
Теперь, хотя другие рисунки, показывающие графики, которые обновляются в режиме реального времени, работают, эта цифра явно не работает, то есть она изменяется до правильного размера, но остается все время черной (я проверил, открывая предварительный просмотр из командная строка (вне приложения) приводит к появлению фигуры и отображению работающего видеопотока). Я не уверен, связана ли проблема с вызовом preview
в приложении, с неправильным указанием правильного изображения или свойств изображения или с тем, нужно ли просто отображать меньшее количество изображений с более низкой частотой кадров в приложении.
Что можно сделать, чтобы решить эту проблему?