Passing a matrix to graycomatrix

Could you please help me with the following question?
My code reads a DICOM image. The image is 512 * 512 uint 16.
The code draws an ROI on the image. After creating a mask, the code gets X and Y coordinates as well as the intensity of each pixel within the mask.
The result is a matrix of n by m, which its value corresponds to the image intensity. I want to know how I can pass this matrix to the graycomatrix function?

 Accepted Answer

Image Analyst
Image Analyst on 29 Sep 2021
See attached example.

3 Comments

Thank you Image Analyst. But, I could not find the answer to my question. I want to know how I should pass the matrix to the graycomatrix function.
I use the following code to create the matrix:
for i = 1:size(n)
iy = XROI(n(i, 1));
ix = YROI(n(i, 1));
intens = PixelValues(n(i, 1));
imgmap(ix, iy) = intens;
end
Where n represents the number of the pixels within the mask. XROI is the X-coordinates of all pixels within the mask. YROI is the Y-coordinates of all pixels within the mask. intens is intensity of the corresponding pixel.
The imgmap is the matrix
Then, should I pass the matrix as an image to the graycomatrix function?
If yes, which of the following code is correct:
NewImage = uint8(imgmap);
or given the original image is uint 16, I shoudl use:
NewImage = uint16(imgmap);
glcm = graycomatrix(NewImage, 'Offset', offsets);
or I can directly plugin the matrix:
glcm = graycomatrix(imgmap, 'Offset', offsets);
imgmap = zeros(max(YROI(n(:,1))), max(XROI(n(:,1))), 'like', PixelValues);
for i = 1:size(n, 1)
iy = XROI(n(i, 1));
ix = YROI(n(i, 1));
intens = PixelValues(n(i, 1));
imgmap(iy, ix) = intens;
end
glcm = graycomatrix(imgmap, 'Offset', offsets);
Note: you had x and y reversed. X is horizontal distance, which is column number. y is vertical distance, which is row number.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!