Combining 5 different bands to generate one sinlge image.
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Amit Bhasin
le 20 Jan 2019
Commenté : Amit Bhasin
le 20 Fév 2019
How can I cobmine 5 different multispectral bands (R,G,B, NIR, RedEdge). They all are in .tiff version?
4 commentaires
Walter Roberson
le 20 Jan 2019
I notice your reference to NIR and RedEdge, both of which are associated with satellite images. I wonder if it would be appropriate to be building a GeoTIFF instead of a plain TIFF ?
Réponse acceptée
Walter Roberson
le 20 Jan 2019
Sample code:
filename = 'test5.tif';
if exist('R', 'var')
numrows = size(R,1);
numcols = size(R,2);
else
%this entire section is just creating data to write out, and the details
%do not matter. There is no significance to the 87 and 207 and so on,
%I just put them in to have distinguishable layers.
numrows = 64;
numcols = 80;
rng(12345);
R = sort(randi([0 255], numrows, numcols, 'uint8'));
G = sort(randi([0 255], numrows, numcols, 'uint8'), 2, 'descend');
B = sort(randi([0 255], numrows, numcols, 'uint8'), 1, 'descend');
NIR = max(min(G, 87), 207) - randi([0 50], numrows, numcols, 'uint8');
RedEdge = randi([50 223], numrows, numcols, 'uint8');
end
%serious code starts here
data = cat(3,R, G, B, NIR, RedEdge);
t = Tiff(filename, 'w');
setTag(t,'Photometric', Tiff.Photometric.MinIsBlack);
setTag(t,'Compression', Tiff.Compression.None);
setTag(t,'BitsPerSample', 8);
setTag(t,'SamplesPerPixel', size(data,3));
setTag(t,'SampleFormat', Tiff.SampleFormat.UInt);
setTag(t,'ExtraSamples', Tiff.ExtraSamples.Unspecified);
setTag(t,'ImageLength', numrows);
setTag(t,'ImageWidth', numcols);
setTag(t,'TileLength', 32);
setTag(t,'TileWidth', 32);
setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
write(t, data);
close(t);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Display Image 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!