Can we use standard deviation of color image as a contrast value?
조회 수: 27 (최근 30일)
이전 댓글 표시
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
채택된 답변
Walter Roberson
2023년 3월 19일
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
Walter Roberson
2023년 3월 21일
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]
추가 답변 (1개)
Sulaymon Eshkabilov
2023년 3월 18일
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
댓글 수: 3
Sulaymon Eshkabilov
2023년 3월 18일
if you're looking for an RMS contrast value, then you can easily implement the calculation equation given here into your code:
Which is applicable for RGB and grey images.
Simple calc of the grey image contrast value is:
IM = imread(GImage);
IM_contrast = max(IM(:))-min(IM(:));
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!