lecture4 - UC Santa Barbara
Transcript of lecture4 - UC Santa Barbara
!"#"$%&
$&
http://ekclothing.com/blog/wp-content/uploads/2010/02/spring-colors.jpg
Some slides taken shamelessly from Prof. Yao Wang’s lecture slides
!"#"$%&
'&
Definition of An Image ! Think an image as a function, f
! f (x, y ) gives the intensity at position ( x, y ) ! Realistically, we expect the image only to be defined over a
rectangle, with a finite range: ! f: [a,b]x[c,d] ! [0,1]
! A color image is just three functions pasted together ! (R, G, B) components
Sampling + Quantization ! We usually operate on digital (discrete) images:
! Sample the 2D space on a regular grid ! Pixel
! Quantize each sample (round to nearest integer)
!"#"$%&
(&
1-bit Image
• Each pixel is stored as a single bit (0 or 1), so also referred to as binary image.
• Such an image is also called a 1-bit monochrome image or a pure black/white image since it contains no color.
• We show a sample 1-bit monochrome image “Lena” • A standard image used to illustrate
many algorithms
8-bit Grayscale Image ! Each pixel has a gray-value between 0 and 255.
! A dark pixel might have a value of 10, and a bright one might be 230.
! Each pixel is represented by a single byte;
! Image resolution refers to the number of pixels in a digital image ! Higher resolution always yields better quality ! Fairly high resolution for such an image might be
1600x1200, whereas lower resolution might be 640x480.
! Without any compression, a raw image’s size = # of pixels x byte per pixel
!"#"$%&
!&
24-bit Colored Image ! Each pixel is represented by three bytes, usually
representing RGB ! one byte for each R, G, B component
! 256x256x256 possible combined colors, or a total of 16,777,216 possible colors.
! However such flexibility does result in a storage penalty: A 640x480 24-bit color image would require 921.6 kB of storage without any compression.
Processing Images in Matlab
x=imread(‘Filename’)
imshow(x)
image(x)
imwrite(‘Filename’,x)
y=rgb2gray(x)
!"#"$%&
)&
ans(:,:,1) =
17 16 14 15 17 19 19 18 13 12 17 15 14 14 16 17 17 16 14 13 19 18 16 16 16 17 17 16 15 14 21 20 19 18 18 17 17 16 16 15 17 17 16 15 16 14 14 13 15 14 16 17 17 17 17 15 15 15 14 13 14 16 17 17 16 15 15 15 13 12 11 13 15 15 14 13 13 14 12 11 15 14 14 13 13 11 11 10 13 11 16 16 15 15 15 14 14 14 10 8
ans(:,:,2) =
10 9 7 8 10 12 11 10 5 4 10 8 7 7 9 10 9 8 6 5 14 13 11 11 11 12 9 8 7 6 16 15 14 13 13 12 9 8 8 7 14 14 13 12 10 8 8 7 9 8 13 14 14 14 11 9 9 9 8 7 13 15 16 16 13 12 12 12 7 6 10 12 14 14 11 10 10 11 6 5 15 14 14 13 11 9 8 7 10 8 16 16 15 15 13 12 11 11 7 5
ans(:,:,3) =
17 16 14 15 18 20 22 21 18 17 17 15 14 14 17 18 20 19 19 18 20 19 17 17 18 19 20 19 20 19 22 21 20 19 20 19 20 19 21 20 21 21 20 19 20 18 18 17 21 20 20 21 21 21 21 19 19 19 20 19 21 23 24 24 22 21 23 23 19 18 18 20 22 22 20 19 21 22 18 17 25 24 24 23 22 20 19 18 21 19 26 26 25 25 24 23 22 22 18 16
Red-layer Pixel Strength Green-layer Pixel Strength
Blue-layer Pixel Strength
Colored Image
8-bit Colored Image ! Many systems can make use of 8 bits of color
information (the so-called “256 colors”) in producing a screen image.
! Such images use the concept of a lookup table to store color information. ! Basically, the image stores not color, but instead just a set of
single bytes, each of which is actually an index into a table of 3-byte values that specify the pixel color for that lookup table index.
!"#"$%&
*&
Progressive vs. Interlaced Frames
• Used in standard television formats (NTSC, PAL, and SECAM)
• Displays only half of the horizontal lines at a time
• The first field , containing the odd-numbered lines, is displayed, followed by the second field, containing the even-numbered lines
• Good: A high refresh rate (50 or 60 Hz) can be achieved with only half the bandwidth.
• Bad: The horizontal resolution is essentially cut in half.
Progressive vs. Interlaced Frames
• Used in CRT, LCD, DTV, HDTV • 720p, 1024p
• Displays all the horizontal lines at a time
• Good: Higher resolution at the same refresh rate, no blurring
• Bad: Higher bandwidth
Bandwidth of 1920x1080 (1080i60) = Bandwidth of 1280x720(720p60)
!"#"$%&
#&
Digital Audio
! Audio= collection of waveforms
! Sampling + quantization
! Matlab demo ! [audio,Fs]=wavread(file) ! sound(audio,Fs) ! Can only read some .wav files
Outline ! Color perception and specification
! Color as EM waves
! Human perception of color ! Trichromatic color mixing theory
! Different color representations ! Primary color (RGB, CMY) ! Luminance/chrominance
! Color image capture and display ! 3D to 2D projection
! Analog vs. digital camera
! Color quantization ! Uniform
! Adaptive ! Dithering
!"#"$%&
+&
Color = EM Waves ! Light is an electromagnetic wave. Its
color is characterized by the wavelength content of the light. ! Most light sources produce
contributions over many wavelengths.
! Laser light consists of a single wavelength
! Short wavelengths produce a blue sensation, long wavelengths produce a red one
! Human can not detect light, but its contributions that fall in the visible wavelengths (400—700nm) ! Nanometer: 1nm=10-9 meter
Image from http://hirise.lpl.arizona.edu/HiBlog/tag/color/
Human Vision Like a Camera!!
Mapping camera components to the eyes
Lens ! Lens, cornea
Shutter ! Iris, pupil
Film ! Retina
Cable to transfer images ! Optic nerve send info to the brain
Retina: a light sensitive tissue lining the inner surface of the eye. The optics of the eye create an image of the visual world on the retina.
!"#"$%&
,&
Human Perception of Colors ! Retina contains photo receptors
! Cones: day vision, can perceive color tone ! Red, green, and blue cones
! cones have different frequency responses
! Tri-receptor theory of color vision
! Rods: night vision, perceive brightness only ! produce a image in shades of gray (“all cats are gray at night!”)
http://en.wikipedia.org/wiki/Trichromacy
Define Colors via RGB ! Trichromatic color mixing theory
! Any color can be obtained by mixing three primary colors with a right proportion
! Primary colors for illuminating sources: ! Red, Green, Blue (RGB) ! Example: CRT works by exciting red, green, blue
phosphors using separate electronic guns ! R+G+B=White
Used in digital images
!"#"$%&
$%&
Recap: Color Images
Red-layer Pixel Strength Green-layer Pixel Strength
Blue-layer Pixel Strength
RGB Coordinate
http://en.wikipedia.org/wiki/HSL_and_HSV
!"#"$%&
$$&
Define Colors via CMY ! Primary colors for reflecting sources (also known as
secondary colors): ! Cyan, Magenta, Yellow (CMY) ! Example: Color printer works by using cyan, magenta,
yellow and black (CMYK) dyes ! Subtractive rule: R+G+B=Black ! CMYK: use K to save CMY inks
Used in printing
RGB CMY(K) Normalize each R, G, B component to a value within [0,1]
CRGB=[R, G, B]
CCMY=[C, M, Y]=[1-R, 1-G, 1-B]
or [255-R, 255-G, 255-B] if not normalized
CCMYK= [C, M, Y, K]
if min(C, M, Y)=1
then CCMYK=[0,0,0,1]
else
K=min(C, M, Y)
CCMYK=[(C-K)/(1-K), (M-K)/(1-K), (Y-K)/(1-K), K]
!"#"$%&
$'&
Luminance & Chrominance ! Color sensation can also be characterized by
! Luminance (brightness): e.g.Y = 0.2126 R + 0.7152 G + 0.0722 B
! Chrominance ! Hue (color tone)
! Saturation (color purity)
! Hue, saturation, and intensity (HSI) ! typically used by artists. ! HSB (brightness), HSV(value), HSL(light)
! Intensity-chromaticity color spaces, YUV and YIQ, ! Used for television broadcast.
HSV (HSB) and HSL ! Hue, saturation, and intensity (brightness/ value/ light)
!"#"$%&
$(&
Intensity-chromaticity based ! YUV (PAL TV broadcast, Europe & Asia,
and some forms of NTSC) ! Code a luminance signal (often gamma-
corrected signals) equal to Y’, the “luma". ! Chrominance refers to the difference between a
color and a reference white at the same luminance. -> use color differences U, V
! Also known as Y'UV, YCbCr, YPbPr (component video)
http://commons.wikimedia.org/wiki/File:Barn-yuv.png
Y =! 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.437B= 0.492(B-Y) V =! 0.615R - 0.515G - 0.100B= 0.877 (R-Y)
Intensity-chromaticity based ! YIQ (NTSC TV broadcast,
north America) ! I : in-phase ! Q: quadrature ! U, V rotated 33o
YUV YIQ
RGB-to-YIQ
Y = 0.299R +0 .587G +0.114B I = 0.596R - 0.274G - 0.322B Q = 0.211R - 0.523G - 0.312B
!"#"$%&
$!&
Intensity-chromaticity based
! YCrCb
! Digital image/video
! Cb= blue-difference
! Cr=red-difference
! Similar to YUV
YUV YIQ YCrCb
YUV vs. YIQ
!"#"$%&
$)&
RGB –YUV & YIQ
! RGB-to-YUV
Y =! .299R + .587G + .114B U = -.147R - .289G + .437B=0.492(B-Y) V =! .615R - .515G - .100B=0.877 (R-Y)
! RGB-to-YIQ
Y = .299R + .587G + .114B I = .596R - .274G - .322B Q = .211R - .523G - .312B
! YUV-to-RGB
R = 1.00Y +! .000U + 1.403V G = 1.00Y -! .344U -! .714V B = 1.00Y + 1.773U +! .000V
! YIQ-to-RGB
R = -1.129Y + 3.306I - 3.000Q G =! 1.607Y -! .934I +! .386Q B =! 3.458Y - 3.817I + 5.881Q
YUV Subsampling ! Human eyes are more sensitive to changes in luminance than in
chrominance ! opportunity for reducing bandwidth ! UV subsampling
4:4:4 ! 24 bits 8 for Y, 8 for U, 8 for V
4:2:2 ! 16 bits, 8 for Y, 8 for every 2 U, 8 for every 2 V
4:1:1 ! 12 bits, 8 for Y, 8 for every 4 U, 8 for every 4 V
4:2:0 ! 12 bits, 8 for Y, 8 for avg 2x2 U, 8 for avg 2x2 V
!"#"$%&
$*&
Summary: Color Specification ! Specify three primary or secondary colors
! RGB & CMY
! Specify the luminance and chrominance ! HSB or HSI (Hue, saturation, and brightness or intensity) ! YUV, YIQ (used in NTSC color TV or analog color TV) ! YCbCr (used in digital color TV, image, video)
! Amplitude specification:
! In general 8 bits for each color component (0, 255), and 24 bits total for each pixel
! Total of 16 million colors ! A true RGB color display of size 1000x1000 requires a display
buffer memory size of 3 MB
PPT DEMO
!"#"$%&
$#&
Displaying Images ! The light entering the eye of the computer user is that which
is emitted by the screen
! The screen is essentially a self-luminous source. It alters the color signals ! The light emitted is in fact roughly proportional to the voltage
raised to a power; this power is called gamma, with symbol !.
! If the file value in the red channel is R, the screen emits light proportional to R! ! The value of gamma is around 2.2.
! Need to pre-process signals by raising to the power (1/!) before transmission.
Gamma Correction A nonlinear operation to code/decode luminance Y
! Y ! Y’=Y1/2.2
!"#"$%&
$+&
Color Gamut ! Each color model has different color range (or gamut). RGB
model has a larger gamut than CMY. Therefore, some color that appears on a screen may not be printable and is replaced by the closest color in the CMY gamut.
Color Quantization ! Select a set of colors that are most frequently used in an image,
save them in a look-up table (also known as color map or color palette)
! Any color is quantized to one of the indexed colors
! Only needs to save the index as the image pixel value and in the display buffer
! Typically: k=8, m=8 (selecting 256 out of 16 million colors)
! Recall: Last Lecture: 24bit image ! 8 bit image (3R, 3G, 2B) ! Bit 7 6 5 4 3 2 1 0 ! Data R R R G G G B B
!"#"$%&
$,&
Web-Safe Colors ! A set of 216 color values as Web-safe color map
! Developed when CRTs can display 256 colors ! 6x6x6=216 ! Each R, G, B component has 6 shades
Today’s Learning ! Each color is an EM wave at a certain wavelength in the visible light band
! How a human perceives color ! Three types of cones sensitive to red, green, and blue respectively
! How to generate different colors in display and in printing ! By mixing three primary colors ! RGB for display, CMY+K for printing
! How to display images: ! Gamma correction
! How is a color image stored ! Consists of three separate component images: ex. R,G,B, YCbCr
! Color quantization ! True color vs. index color image