Hello, so I am creating a GUI where I want to have a preview of a video, but without it opening up in another window. Is that possible? preview() opens another window, and I tried to experiment with imshow, but I'm not sure on how to really do this. My computer is attached to a camera device and I already have that setup. Thank you!

 采纳的回答

You can use the command:
preview(vid, hImage);
where hImage is the handle to the image object in which the data is to be displayed.
How are you creating your UI? Are you using App Designer?

4 个评论

Hello, yes I am using App Designer. I tried using hImage and I was using an axes object as the handle, but I get an error saying, "The specified image handle must be a valid 1XN image object handle, where N represent the specified video input's object's length." I'm not sure on how to check the dimensions of an axes object if that what it was referring to.
You do not pass in an axes handle for the second parameter of preview(): you pass in the handle an image() object. For example,
ax = app.UIAxes2;
z = zeros(640,480,3);
hImage = image(z);
preview(vid, hImage);
It turns out to be possible for vid to be a vector of videoinput() results; in that case, hImage would have to be a row vector of image() objects the same length as vid is. This is something that would be used if you were previewing several video input devices simultaneously.
I was able to get it to display into the UIAxes; however, it only records a small, "zoomed in" section of the vidoe input and only fits a small part of the UIAxes/doesn't extend to the edges. How to fix this?
I am also currently trying to display a preview of my webcam and hamamatsu camera into a UIAxes within my GUI. How were you able to achieve this?

请先登录,再进行评论。

更多回答(0 个)

产品

版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by