MATLAB Answers

Using Matlab Image Labeler app to work with other image formats (NITF)

Latest activity Answered by Kojiro Saito on 13 Aug 2019
I need to label a dataset containing imagery in NITF format. Is there a way to directly load the NITF files for labeling instead of converting all of them to PNGs before labeling? Matlab has a function to read NITF image files into arrays. Is there any kind of custom scripting available that can be added to the Image Labeler tool to automatically preprocess and convert the NITF image to a format that can be loaded by the image labeler tool?

  0 Comments

Sign in to comment.

1 Answer

Answer by Kojiro Saito on 13 Aug 2019

As this document says,
The Image Labeler app supports all image file formats supported by imread. To add additional file formats to imread, use imformats.
In order to let Image Labeler load NITF formats without converting file formats, we can use imformats.
Here is a sample code of .ntf format.
%% Add NITF(.ntf) to
formatStruct = struct('ext', 'ntf', 'isa',@isnitf,...
'info',@nitfinfo,'read',@customreader, 'write','',...
'alpha',0,'description','NITF formats for imread');
registry = imformats('add', formatStruct);
%% Then, you can launch imageLabeler by specifying image datastore
imds = imageDatastore('nitfData', 'FileExtensions', '.ntf', 'ReadFcn',@customreader);
%imshow(preview(imds))
imageLabeler(imds)
%% Or, by specifying a folder which contains .ntf files
imageLabeler('nitfDataFolder')
Here is reader function which was used in imformats and imageDatastore.
customreader.m
function [data, map] = customreader(filename)
data = nitfread(filename);
map = [];
end

  0 Comments

Sign in to comment.