MATLAB Answers

Plot on top of a Live Image Preview

28 views (last 30 days)
Hello,
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');
Thanks,
Allison

  0 Comments

Sign in to comment.

Accepted Answer

Andrei Ursache
Andrei Ursache on 1 Feb 2019
Allison,
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');
Andrei

  1 Comment

Allison Liu
Allison Liu on 7 Feb 2019
Yes! This worked great, thank you.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!