storing values and comparing images

hello,
i found the max . min intensities values of image and also the glcm features and how i want to store these values to compare with other images.
how do i storeand compare those.

 Accepted Answer

Hi Smruti, Refer the code below.
% Read your image here
I = imread('cameraman.tif');
% Properties of gray-level co-occurrence matrix
statsVal = graycoprops(I); % GCLM values are stored in statsVal
% Max value
maxVal = max(I(:)); % max value are stored in maxVal
% Min value
minVal = min(I(:)); % min value are stored in minVal
% Display values
disp(['Contrast value: ', num2str(statsVal.Contrast)]);
disp(['Correlation value: ', num2str(statsVal.Correlation)]);
disp(['Energy value: ', num2str(statsVal.Energy)]);
disp(['Homogeneity value: ', num2str(statsVal.Homogeneity)]);
disp(['Max value: ', num2str(maxVal)]);
disp(['Min value: ', num2str(minVal)]);

11 Comments

Thankyou sir
can u tell me how to store the values for further use?
You can save the variables using the save command. Like below,
save('camermanMaxMinGCLMValues.mat', 'maxVal', 'minVal', 'statsVal');
Values will be stored inside "camermanMaxMinGCLMValues.mat".
To retrieve the values use,
load camermanMaxMinGCLMValues.mat
i want to store the values of each image with different variables and i have 10 images and then compare these values.
All your images are in a single folder?
Try this code
clear all; clc; close all;
myFolder = 'Put_your_image_folder_path_here';
filePattern = fullfile(myFolder, '*.tiff'); % Change the extension according to your file extension
tiffFiles = dir(filePattern);
for k = 1:length(tiffFiles)
baseFileName = tiffFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
temp = (imread(fullFileName));
[r, c, d] = size(temp);
% Making all image grayscale
if d == 3
temp = rgb2gray(temp);
end
% Making dimension of all the images same
if r ~= 256 && c ~= 256
temp = imresize(temp, [256, 256], 'bicubic');
end
statsVal = graycoprops(temp);
contrastVal{k} = statsVal.Contrast;
corrVal{k} = statsVal.Correlation;
energyVal{k} = statsVal.Energy;
homogeneityVal{k} = statsVal.Homogeneity;
maxVal{k} = max(temp(:));
minVal{k} = min(temp(:));
xTickDisplayNames{k} = baseFileName;
end
% Compare all values with bar plot
X = categorical(xTickDisplayNames);
figure; bar(X, cell2mat(maxVal)); title('Max Value Comparison');
figure; bar(X, cell2mat(minVal)); title('Min Value Comparison');
figure; bar(X, cell2mat(contrastVal)); title('Contrast Value Comparison');
figure; bar(X, cell2mat(corrVal)); title('Correlation Value Comparison');
figure; bar(X, cell2mat(energyVal)); title('Energy Value Comparison');
figure; bar(X, cell2mat(homogeneityVal)); title('Homogeneity Value Comparison');
an error is coming
"XData values must be unique." and
"Undefined function or variable 'xTickDisplayNames'."
Smruti, it seems you have two or more images with the same name in your folder therefore, xTickDisplayNames are not being unique.
It is working perfectly on my side. Can you tell the names of you image files?
Otherwise one possible solution is using stem in place of bar.
i got the desirednoutput thankyou so much sir.
There are many user-defined functions in your code (e.g., binaryconvert, convert, etc.). Therefore, I could not run the code in my end.
However, I can see in line 20 of your code, in every loop iteration the variable baseFileName is being overwritten with the character 'croppedImage'.
baseFileName = 'croppedImage';
Commenting / removing the above line might solve the issue.
yes i did the modification and it worked

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!