Plot on top of a Live Image Preview

13 views (last 30 days)
I am trying to plot a few points on top of a live image preview, but my code returns an error of "Line cannot be a child of Image." Does anyone know of a way to plot on top of a Live Image, similar to the imageMarker function?
vidRes1 = handles.vid1.VideoResolution;
imWidth1 = vidRes1(1);
imHeight1 = vidRes1(2);
nBands1 = handles.vid1.NumberOfBands;
hImage = image(zeros(imHeight1, imWidth1, nBands1), 'Parent', handles.axes1);
preview(handles.vid1, hImage);
plot(hImage, 250, 300, 'bo');

Accepted Answer

Andrei on 1 Feb 2019
This approach might work for you:
vid = videoinput('winvideo', 1);
vidInfo = imaqhwinfo(vid);
vidRes = vid.VideoResolution;
imWidth = vidRes(1);
imHeight = vidRes(2);
numBands = vid.NumberOfBands;
hFig = figure;
hAxes = axes(hFig);
hImage = image(hAxes, zeros(imHeight, imWidth, numBands, vidInfo.NativeDataType));
preview(vid, hImage);
hLine = line(hAxes, round([0.25*imWidth, 0.75*imWidth]),...
round([0.5*imHeight, 0.5*imHeight]),...
'Marker', 'o',...
'LineStyle', 'none');
  1 Comment
Allison Liu
Allison Liu on 7 Feb 2019
Yes! This worked great, thank you.

Sign in to comment.

More Answers (0)


Find more on Image Preview and Device Configuration in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!