how to scatter plot a mutispectral image

2 views (last 30 days)
joynjo on 16 Apr 2017
Commented: Image Analyst on 17 Apr 2017
Dear Everyone
Does anyone has experience how to scatter plot a multispectral image. Let say any multspectral image with matrix composition is 480x752x151 (row x column x band). I want to pick some pixel sample, then do scatter plot these pixel sample to analyze the intensity values. I am very appreciated for any support and help.

Answers (1)

Image Analyst
Image Analyst on 16 Apr 2017
Edited: Image Analyst on 16 Apr 2017
I don't even know what that means. Basically to get a spectrum from some row and column, you can do
thisSpectrum = multspectralImage(row, column, :);
plot(thisSpectrum, 'b-', 'LineWidth', 2);
grid on;
If you want, you can plot the spectra for every single pixel in the image. You can even get the average spectra if you want, though I imagine you'd do that for some sub-regions of the image that look different rather than for the whole image.
If you're thinking of something like what colorcloud() does to plot the RGB color gamut, then no, you can't do that. You can't have a scatterplot with 151 different axes, only 2 or 3. I suggest you do cluster analysis instead to find the "clumps".
Image Analyst
Image Analyst on 17 Apr 2017
You can cluster them but people can't see in 151 dimensions so you're not going to get a scatter plot unless you pick 3 at a time. for that I suggest you read this paper:
But whether you want to cluster them depends on why or what you hope to learn. Perhaps you want to determine base compounds (chemicals) comprising a region or something so maybe you want to multivariate curve resolution or PCA or something.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!