Can we use standard deviation of color image as a contrast value?
12 views (last 30 days)
Show older comments
dila suay
on 18 Mar 2023
Commented: Walter Roberson
on 21 Mar 2023
Hello,
Is it possible to compare the contrasts of 2 image by comparing std2(rgbimage) or is it necessary to convert to gray scale? Can you describe what is the difference between them?
Thank you
0 Comments
Accepted Answer
Walter Roberson
on 19 Mar 2023
That particular kind of contrast is called RMS contrast; there are other contrast measures as well.
YourImage = imread('flamingos.jpg');
c3 = std2(im2double(YourImage), [], [1 2]);
would give you the contrast of each color pane independently, giving you a 1 x 1 x 3 result.
But then what do you with the vector of 3 results? You could interpret them as an RGB color
image(c3)
but does it make sense for "contrast" to be interpreted as a color??
If you examine the other kinds of contrast measures, they mostly work with luminance -- requiring that you convert to grayscale or Lab or similiar first.
4 Comments
Walter Roberson
on 21 Mar 2023
Thought experiment:
Are the contrasts of all of these the same, or are some different?
[255, 0, 0, 0, 0]
[255, 0, 255, 0, 0]
[255, 255, 0, 0, 0]
[0, 255, 255, 0, 0]
[0, 0, 255, 0, 0]
More Answers (1)
Sulaymon Eshkabilov
on 18 Mar 2023
Numerically to find the differences of the two imaes (of the same size) and then compute the std of the computed differences are feasible, e.g.:
A = imread('A_RGB.png'); % Size is 1000-by-1200 RGB image
B = imread('B_RGB.png'); % Size is 1000-by-1200 RGB image
diff_AB = A-B;
std_diff=std2(diff_AB); % STD of the difference
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!