Problems overlaying contour on image in uifigure
조회 수: 2 (최근 30일)
이전 댓글 표시
I am trying to mimic the following code:
f1=figure;
a1=gca;
hi1 = imshow(repmat(reshape(uint8(normalize(dose(:), "range")* 256), size(xg)), [1 1 3]), R, 'Parent', a1, 'InitialMagnification', 1500)
hold on
w = 17;
[~, hc] = contour(reshape(actual_positions(:, 1), w, []), reshape(actual_positions(:, 2), w, []), reshape(points, w, []), 'Parent', a1)
which works OK and outputs the following:

in a UIFigure like this:
f2 = uifigure();
a2 = uiaxes(f2);
hi2 = imshow(repmat(reshape(uint8(normalize(dose(:), "range")* 256), size(xg)), [1 1 3]), R, 'Parent', a2, 'InitialMagnification', 1500);
which displays the image OK:

The Image seems to be a child of the figure:
>> f2.Children(1).Children
ans =
Image with properties:
CData: [53×53×3 uint8]
CDataMapping: 'direct'
Show all properties
But it fails to overlay the contours properly with this code:
hold all
[~, hc] = contour(reshape(actual_positions(:, 1), w, []), reshape(actual_positions(:, 2), w, []), reshape(points, w, []), 'Parent', a2);
hc.Parent.Color = 'none';
It seems to remove the image and replace it with the contour plot instead of overlaying it.

There is only one child and it is the contour plot:
>> f2.Children(1).Children
ans =
Contour with properties:
EdgeColor: 'flat'
LineStyle: '-'
LineWidth: 0.5000
FaceColor: 'none'
LevelList: [0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 0.0800 0.0900]
XData: [17×17 double]
YData: [17×17 double]
ZData: [17×17 double]
Show all properties
Is there any way to make the behavior the same for a figure and a uifigure?
댓글 수: 0
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!