multi-spectral images with imageDatastore
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have images in different directories that I would like to concatenate before passing them to a CNN. I have two class labels separated in two folders. Within each folder, there are subfolders corresponding to the channels of the multi-spectral image. To concatenate these images I created two functions
function multi = cat_datastore(label,dir1,dir2,dir3)
rgb = imageDatastore(dir1);
rgb.Labels = categorical(repelem(label,length(rgb.Files)));
mask = imageDatastore(dir2);
mask.Labels = rgb.Labels ;
seg = imageDatastore(dir3);
seg.Labels = rgb.Labels ;
imds = combine(rgb, mask, seg);
multi = transform(imds,@concat_mask);
end
and
concat_mask
which concatenates all channels. If I run read(muti), then I can see the final image is of size WxHxN, with N being the number of channels. My question is in regards to combining this datastore with the images in the other label. I assumed
imds = combine(multi1, multi2);
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7);
would be helpful but when trying to run, I get an error 'Check for missing argument or incorrect argument data type in call to function 'splitEachLabel'. This makes sense because splitEachLabel is expecting an imageDatastore object rathern than a TransformedDatastore or a CombineDatastore.
I also tried (even though I am not a fan of this), writing all images to a folder and then create a datastore from it. So I ran,
writeall(multi1, dir ,'FolderLayout','flatten','OutputFormat', 'tif') ;
but I get an error
Unable to open file "" for writing. You might not have write permission.
Any advice? Should I just write a for loop and save the concatenated images in a folder?
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Recognition, Object Detection, and Semantic Segmentation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!