Question
Hi to all, I am having some trouble using the graycomatrix function. I tried to read the documentation but that did not answered my question. By default, the input image is rescaled to an image with 8 gray levels. Does anyone knows how is this rescaling performed? Besides the GLCM, I am getting a matrix with all ones as output from the graycomatrix function, which is not the same as I get when i use the rescale function on the original image.
Expert Answer
John Michell
PhD Expert
Answered Nov 20, 2025
Here is the doc for the NumLevels parameter:
Number of gray levels, specified as an integer. For example, if NumLevels is 8, graycomatrix scales the values in I so they are integers between 1 and 8. The number of gray-levels determines the size of the gray-level co-occurrence matrix (glcm).
And here is the code fragment inside graycomatrix.m that performs the scaling:
% Scale I so that it contains integers between 1 and NL.
if GL(2) == GL(1)
SI = ones(size(I));
else
slope = NL / (GL(2) - GL(1));
intercept = 1 - (slope*(GL(1)));
SI = floor(imlincomb(slope,I,intercept,'double'));
end
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related machine learning Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →