Filter löschen
Filter löschen

How is the scaling of y channel in YCbCr is different than scaling all three colour channel?

10 Ansichten (letzte 30 Tage)
I have few hundred images in a dataset. I corrected illumination but they do have different illumination as they are taken in different lighting conditions.
Simple scaling is solving the problem, but I got confused what to choose. 1) Simply scaling all three different color channels by a constant c 2) Extract y channel in YCbCr converted Image and scale y channel by constant c.
In principle how they are different. I see minor difference in red channel histograms after scalling both the ways.
the condition of scaling is they must not affect the hue of any two subsequent images in the dataset.

Akzeptierte Antwort

Kushagr Gupta
Kushagr Gupta am 16 Mär. 2017
In principal, all these color spaces are affine transformations of each other, that is YCbCr = A*(RGB) + b. Hence if you multiply RGB by a constant C, all the three channels in YCbCr are scaled proportionately.
YCbCr is a color space wherein Y channel contains the luminance (intensity) component and CbCr the color information. As humans are more sensitive to luminance changes, this color space is mostly used when you would want to do sub sampling in color channels, preserving the intensity information.
That being said, rescaling Y channel and scaling each R,G,B channel should produce fairly similar results as essentially both are adjusting the total intensity of the image.
The wikipedia link on YCbCr would be helpful in understanding more about this color space and its applications.
  2 Kommentare
Jay am 16 Mär. 2017
One thing I really want to keep in mind is not to affect the colours while changing the intensities. I have problem with the darkness in some images, not with the colours, if scaling will change the colours, ultimately my objects will refer to different clusters in 3D colour histograms, that I really don't want.
Kushagr Gupta
Kushagr Gupta am 16 Mär. 2017
In that case, scaling just the Y channel is a better approach. Scaling RGB will modify the color. Taking a simple example:
P(1,1,:) = [0.5 0.5 0]; % Greenish Color
Q(1,1,:) = P(1,1,:) *2; % [1 1 0] Yellow Color

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)


Mehr zu Image Processing and Computer Vision finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by