งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

# 2.3.2 Contrast Stretching Contrast

## งานนำเสนอเรื่อง: "2.3.2 Contrast Stretching Contrast"— ใบสำเนางานนำเสนอ:

2.3.2 Contrast Stretching Contrast
The contrast of an image is its distribution of light and dark pixels Fig Low and high contrast histogram.

Contrast Stretching Contrast stretching Clipping thresholding

Contrast Stretching, a = 80, b= 160

Basic Contrast Stretching
Original Image Basic Contrast Stretching End-in Search

Original Image Convert Image Contrast Stretching

Red Green Blue

/********************************************
* Func: auto_contrast_stretch * Desc: performs basic contrast stretching on an image * Params: source - pointer to source image * cols - number of columns in the image * rows - height of image * ********************************************* void auto_contrast_stretch(image_ptr source, int cols, int rows) { long i; /* loop variable */ long number_of_pixels; /* total number of pixels in image */

long histogram[256]; /* image histogram */
unsigned char LUT[256]; /* Look-up table for point process */ int lowthresh, highthresh; /* lower and upper thresholds */ float scale_factor; /* scaling factor for contrast stretch */ /* compute histogram */ number_of_pixels = (long)cols * rows; for(i=0; i<256; i++) histogram[i]=0; for(i=0; i<number_of_pixels; i++) histogram[source[i]]++;

/* compute low and high thresholds */
for(i=0; i<256; i++) if(histogram[i]) { lowthresh = i; break; } for(i=255; i>0; i--) highthresh = i;

printf("Low threshold is %d High threshold is %d\n",
lowthresh,highthresh); /* compute new LUT */ for(i=0; i<lowthresh; i++) LUT[i]=0; for(i=255; i>highthresh; i--) LUT[i]=255;

scale_factor = 255.0 / (highthresh-lowthresh);
for(i=lowthresh; i<=highthresh; i++) LUT[i]=(unsigned char)((i - lowthresh) * scale_factor); /* transfer new image */ for(i=0; i<number_of_pixels; i++) source[i] = LUT[source[i]]; }

2.3.3 Intensity transformations
Digital negative Applications Display of medical images Produce negative prints of images Intensity level slicing Applications : Segmentation of certain gray level regions

Intensity transformations
Convert an old pixel into a new pixel based on some predefined function Implemented with simple look-up tables Simple transformation Null transform new pixel = old pixel Image negative y = -x+255 Gamma correction function Brightness of an image can be adjusted with a gamma correction transformation

Intensity transformations
Posterizing reduces the number of gray levels in an images Thresholding results when number of gray levels is reduced to 2. A bounced threshold reduces the thresholding to a limited range and treats the other input pixels as null transformation Figure 2.18(pp.63) Fig (a) 8-Level posterize transformation; (b) posterized image; (c) threshold transformation; (d) threshold image; (e) bounded threshold; (f) bounded threshold image.

Intensity transformations
Gamma correction Original gamma=0.45 gamma=2.20

Intensity Transformation
Intensity transformation is a point process that converts an old pixel into a new pixel base on some predefined function. This transformation is implemented with the LUT with ease. Gamma Correction

Intensity Transformation

Intensity Transformation

Intensity Transformation

Intensity transformations
Fig (a) Gamma collection transformation with gamma=0.45; (b) gamma collected image; (c) gamma collection transformation with gamma=2.2; (d) gamma collected image. Fig (a) Null transformation; (b) image; (c) negative transformation; (d) negative image. Page 60. 참조

Intensity transformations
Fig (a) Contrast stretch transformation; (b) contrast stretched image; (c) Contrast compression transformation; (d) contrast compressed image. Fig (a) 8-Level posterize transformation; (b) posterized image; (c) threshold transformation; (d) threshold image; (e) bounded threshold; (f) bounded threshold image. Page 62. 참조

Intensity transformations
Fig (a) 2-bit bit-clipping transformation; (b) resulting image. Fig (a) Iso-intensity contouring transformation; (b) contoured image. Fig Bit clipped image contrast stretched. Page 64. 참조

Intensity tranformations
Fig (a) Range-highlighting transformation; (b) resulting image. Fig (a) Solarize transformation using a threshold of 150; (b) solarize image. Page 65. 참조

Fig (a) First parabola transformation; (b) transformed image; (c) second parabola transformation; (d) second transformed image.

HW – 03 a) Plot กราฟ histogram

HW – 03 b)

สจพ 2.4 Frequency-based Operations Fourier Transform MTCT DI&SP

Spatial Frequency Efficient data representation
Provides a means for modeling and removing noise Physical processes are often best described in “frequency domain” Provides a powerful means of image analysis

What is spatial frequency?
Instead of describing a function (i.e., a shape) by a series of positions It is described by a series of cosines Fourier series Fourier Transform

สจพ 1-D Fourier Transform MTCT DI&SP

Our starting place is the observation that a periodic function may be written as the sum of sines and cosines of varying amplitudes and frequencies.

it is possible to form any function as a summation of a series of sine and cosine terms of increasing frequency For example, in figure we plot a function, and its decomposition into sine functions.

f(t)

We take the first three terms only (blue, green, red) to provide the approximation of the original function (purple). The more terms of the series we take, the closer the sum will approach the original function.

(1) where (2) Original function (purple) sines and cosines
Fourier coefficient Equations 1 and 2 are called Fourier transform pairs, and they exist if f(t) is continuous and integrable, and F(k) is integrable. These conditions are usually satisfied in practice.

f(t) => time-domain
1 2 3 4 1 F(u) => frequency-domain 3 II 4 2

Any function can be represented in 2 formats:
1) time-domain representation, f(t), or spatial domain, f(x), and 2) frequency-domain representationor Fourier domain, F(u) In other words, any space or time varying data can be transformed into a different domain called the frequency space.

Time-domain Frequency-domain

FT properties: If F(u) and G(u) are FT of function f(t) and g(t), respectively, Time scaling Frequency scaling

Time shifting Frequency shifting

Convolution theorem Correlation theorem

สจพ 2-D Fourier Transform MTCT DI&SP

แนวความคิดของการแปลงฟูเรียร์สามารถนำมาใช้กับฟังก์ชั่นหรือสัญญาณ 2 มิติ เช่น ภาพ ซึ่งจะเป็นการแปลงฟังก์ชั่นบน spatial domain (รูปภาพ) ไปเป็น frequency domain สมการคณิตศาสตร์แสดงความสัมพันธ์นี้เป็นดังนี้ IFT FT

ภาพแสดงความสัมพันธ์ระหว่างภาพใน spatial domain และความถี่ใน frequency (or Fourier) domain

พบว่าระยะถี่-ห่างทางตำแหน่งในภาพ (x-y ใน spatial domain) จะแปลงไปเป็นจุดใน frequency domain (u-v)
โดยบริเวณที่มีระยะห่าง (ซึ่งมีความถี่ทางตำแหน่งต่ำ) เช่น บริเวณตัวบ้านรวมทั้งหน้าต่าง-ประตู จะไปอยู่ในตำแหน่งที่ใกล้จุดกำเนิด และในทางกลับกันบริเวณที่มีระยะถี่ (ซึ่งมีความถี่ทางตำแหน่งสูง) เช่น บริเวณที่มีลวดลายบนหลังคาบ้าน จะไปอยู่ในตำแหน่งที่ไกลจุดกำเนิดออกไป

คุณสมบัติของการแปลงแบบฟูเรียร์ 2 มิติ (Properties of the 2-D Fourier Transform)

การแปลงแบบฟาส์ทฟูเรียร์ (The Fast Fourier Transform)
ในกรณีที่ข้อมูลเป็นปริมาณเต็มหน่วย (discrete) ดังเช่นภาพที่ถูกนำเข้าสู่ระบบคอมพิวเตอร์ การแปลงฟูเรียร์ข้างต้นยังคงใช้ได้อย่างสะดวกหลังจากมีการปรับปรุงแล้ว โดยสมการคณิตศาสตร์ของความสัมพันธ์คู่นี้จึงเป็นแบบเต็มหน่วย (Discrete Fourier Transform-DFT) เป็นดังนี้

สำหรับภาพที่มีขนาด NxM จะได้

เมื่อต้องการใช้คอมพิวเตอร์ประมวลผลการแปลงนี้ จำเป็นต้องใช้ขั้นตอนวิธี (algorith-m) ที่รวดเร็วและมีประสิทธิภาพ ดังนั้นจึงมีผู้เสนอขั้นตอนวิธีที่เรียกว่า (The Fast Fourier Transform-FFT) และได้รับความนิยมอย่างกว้างขวาง

Spatial Frequency or How I learned to love the Fourier Transform
Jean Baptiste Joseph Fourier

2.5 Group-based Operations Convolution Operation
สจพ 2.5 Group-based Operations Convolution Operation MTCT DI&SP

แล้วเลื่อน kernel นี้เพื่อไปหาค่าใหม่ของจุดภาพถัดไป
สจพ การกระทำแบบคอนโวลูชั่นเป็นการหาค่าใหม่ของจุดภาพใด ๆ โดยพิจารณาระบบเพื่อนบ้าน (Neighbors System) ในขั้นแรกจะต้องกำหนด window หรือ kernel ซึ่งเป็นตารางสี่เหลี่ยมจตุรัสขนาด 3x3, 5x5 หรือขนาดอื่น ๆ แต่ละช่องของตารางนี้จะถูกกำหนดให้มีค่าน้ำหนัก (Weights) โดยแต่ละช่องอาจมีค่าเท่ากันหรือไม่ก็ได้ จากนั้นนำ kernel นี้มาทาบบนภาพและหาบวกของผลคูณระหว่างค่าน้ำหนักกับค่าความเข้มบนจุดภาพ แล้วเลื่อน kernel นี้เพื่อไปหาค่าใหม่ของจุดภาพถัดไป MTCT DI&SP

งานนำเสนอที่คล้ายกัน