App designer - file data store error, read function does not exist.

3 views (last 30 days)
Hello,
I am trying to create a GUI with App Designer, which loads a file to UIAxes. With scrolling Mousewheel or a Slider I want to scroll through multiple files.
I used the FileDatastore approach where I create a dataarray, which includes the files. This works fine in the normal Matlab Editor, but in the App designer it shows an error, that the customreader function does not exist.
defined private function:
function data = customreader(~,filename)
dcm = org.dcm4che2.data.BasicDicomObject;
din = org.dcm4che2.io.DicomInputStream(...
java.io.BufferedInputStream(java.io.FileInputStream(filename)));
din.readDicomObject(dcm, -1);
rows = dcm.getInt(org.dcm4che2.data.Tag.Rows);
cols = dcm.getInt(org.dcm4che2.data.Tag.Columns);
pixeldata = dcm.getInts(org.dcm4che2.data.Tag.PixelData);
data = reshape(pixeldata, rows,cols);
end
function LoadTBButtonPushed(app, event)
%load file
folder = uigetdir();
if isequal(folder,0)
app.FileEditField.Value = 'no file selected';
else
location = folder;
fds = fileDatastore(location, 'ReadFcn', @customread, 'FileExtensions','.ima');
dataarray = readall(fds);
i = 1;
% Remove title, axis labels, and tick labels
title(app.UIAxes, []);
xlabel(app.UIAxes, []);
ylabel(app.UIAxes, []);
app.UIAxes.XAxis.TickLabels = {};
app.UIAxes.YAxis.TickLabels = {};
%show image
I = imshow(dataarray{1,1},'Parent', app.UIAxes, ...
'XData', [1 app.UIAxes.Position(3)], ...
'YData', [1 app.UIAxes.Position(4)], ...
'DisplayRange', []);
% Set limits of axes
app.UIAxes.XLim = [0 I.XData(2)];
app.UIAxes.YLim = [0 I.YData(2)];
end
Error using fileDatastore (line 102). Function customread does not exist.
is shown in Line: fds = fileDatastore(location, 'ReadFcn', @customread, 'FileExtensions','.ima');
I tried to get the letters app in there, but if I write @app.customreader, the next line sends an error.
Error using matlab.io.datastore.FileDatastore/readall (line 28)
Error using ReadFcn @(varargin)app.customread(varargin{:}) function handle for file
....\Desktop\GUI\NON_DICOM_ANONYM_FILES\1_1.CT.IMA.
No appropriate method, property, or field 'customread' for class 'prototyp_menu'.
Error in @(varargin)app.customread(varargin{:})', 'Documents\MATLAB\GUI_KM\Prototyp\prototyp_menu.mlapp', 240)" style="font-weight:bold">prototyp_menu>@(varargin)app.customread(varargin{:}) (line 240)
fds = fileDatastore(location, 'ReadFcn', @app.customread, 'FileExtensions','.ima');
Thanks for Your help!
  4 Comments
Michael Werthmann
Michael Werthmann on 13 Feb 2019
@app.customreader worked!,
Thank you for your help and sorry for the dumb question...
Cheers

Sign in to comment.

Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!