This seems like a simple problem, but I am trying to save a labeled image as a gTruth object from the Image Labeler. I can export from the Image Labeler to the workspace as a gTruth, but I would like to be able to load it programatically rather than manually importing to the workspace each time. When I save the gTruth variable from my workspave and load it in later, it loads as a struct, which does not work with pixelLabelTrainingData. How do I save a gTruth and have it load back as a gTruth?
% Porcelain_gTruth exists as a gTruth in the workspace from Image Labeler
save('Porcelain_gTruth.mat','Porcelain_gTruth')
% Later on
gTruth = load('Porcelain_gTruth.mat','Porcelain_gTruth');
% Now gTruth is a struct
[imds, pxds] = pixelLabelTrainingData(gTruth);
% I will get an error along the lines of:
% Error using pixelLabelTrainingData>parseInputs
% The value of 'gTruth' is invalid. Expected input to be one of these types:
%
% groundTruth
%
% Instead its type was struct.

댓글 수: 1

Please show us
class(Porcelain_gTruth)
whos -file Porcelain_gTruth.mat

댓글을 달려면 로그인하십시오.

 채택된 답변

Walter Roberson
Walter Roberson 2022년 12월 4일

0 개 추천

gTruth = load('Porcelain_gTruth.mat','Porcelain_gTruth');
That form of load() does not return just the variable you asked to load. That form of load() returns a struct with one field for each variable that is loaded. You need something like
data = load('Porcelain_gTruth.mat','Porcelain_gTruth');
gTruth = data.Porcelain_gTruth;

추가 답변 (0개)

제품

릴리스

R2022b

질문:

2022년 12월 4일

댓글:

2022년 12월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by