MATLAB code error...

17 views (last 30 days)
재호
재호 on 26 Aug 2025 at 0:46
Edited: Walter Roberson on 26 Aug 2025 at 7:33
Hello
I'm running a Matlab code related to quantifying the sphericity of soil particles.
Now I'm using MATLAB R2022a version
please check for errors
This code was made in 2016.
Thanks
  1 Comment
Image Analyst
Image Analyst on 26 Aug 2025 at 3:54
Can you attach the tif file so I can determine why it has 4 planes? Aso attach your m-file so I can try it. Is it supposed to be an RGB true color image, or a volumetric image? Or an RGB image with an alpha channel? If it's a volumetric image, you should use bwlabeln instead of bwlabel.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 26 Aug 2025 at 2:37
Edited: Walter Roberson on 26 Aug 2025 at 7:33
imbinarize() treats 3D arrays as being volumes. imbinarize() is not suitable for converting RGB images to binary.
To convert RGB images to binary, you should first use im2gray (R2020a or later), or rgb2gray
Note that TIFF images with 4 panes can be either RGBA or CMYK. To read RGBA images you should be using something like
[img, map, alpha] = imread('filename.tif');
If img comes out with three panes and map is empty and alpha is non-empty, then the file was RGBA.
If img comes out with four panes and map is empty and alpha is empty, then the file was CMYK.
There is another possibility: if the TIFF file is RGBIr (RBG plus infrared), then sometimes it will be written (incorrectly) as RGBA. RGBIr TIFF images should instead be constructed as RGB plus a seperate data pane (that will not be read by imread())

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!