2.3.2 Contrast Stretching Contrast

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Advertisements

โครงสร้างโปรแกรมภาษา C
Computer Programming 1 LAB Test 3
LAB # 1.
Brightness and contrast Image Histogram Modifying hue and saturation
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Image Enhancement in the Spatial Domain
ฟังก์ชัน (Function).
การควบคุมทิศทางการทำงาน
Week 6 ประกาศค่าตัวแปร.
หน่วยที่ 2 ภาษาโปรแกรม และการออกแบบโปรแกรม
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
Object Oriented Programing
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
การพัฒนาเว็บด้วยโปรแกรมสำเร็จรูป
หน่วยที่ 1 พื้นฐานภาษา C
ตัวแปรกับชนิดของข้อมูล
อาจารย์นัณฑ์ศิตา ชูรัตน์
C language W.lilakiatsakun.
Chapter 1/1 Arrays. Introduction Data structures are classified as either linear or nonlinear Linear structures: elements form a sequence or a linear.
การเขียนโปรแกรมประยุกต์ใช้งาน
ความหมาย การประกาศ และการใช้
#include #define N 5 void main() { inti, X[N]; for (i=0; i < N; i++) { /* รับข้อมูล */ printf(“Enter number : ”); scanf(“%d”, &X[i] ); } for (i=0; i
คำสั่งเกี่ยวกับการรับ และแสดงผล
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Nested loop and its applications.
ตัวแปรและชนิดของข้อมูล (Variables & Data Types)
หน่วยที่ 4 โครงสร้างโปรแกรมภาษาซี
1 สตริง (String) การประกาศค่าตัวแปรสตริง การกำหนดค่าสตริง การอ้างอิงตัวอักษรแต่ละตัวในสตริง ฟังก์ชั่นที่ใช้ในการจัดการสตริง ฟังก์ชั่นในการเปลี่ยนรูปแบบของสตริง.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
๒๘ มิถุนายน ๒๕๕๙ โดย ฝ่ายเทคโนโลยีสารสนเทศ มหาวิทยาลัยบูรพา วิทยาเขตจันทบุรี มหาวิทยาลัยบูรพา วิทยาเขตจันทบุรี ๕๗ หมู่ ถ. ชลประทาน ต. โขมง อ. ท่าใหม่ จ.
โครงสร้างภาษาซี C ++ structure
การเขียนโปรแกรมภาษาเบื้องต้น (ภาษาซี)
Microsoft Access การใช้งานโปรแกรมระบบจัดการฐานข้อมูล
บทที่ 1 บทนำ 1.1 ฮาร์ดแวร์คอมพิวเตอร์ 1.2 ซอฟต์แวร์คอมพิวเตอร์
อาร์เรย์ (Array) อาจารย์สมเกียรติ ช่อเหมือน
โครงสร้างโปรแกรมภาษา C
โปรแกรม ภาษา C ภาษาซี (C Language) เป็นภาษาหนึ่งสำหรับเขียนโปรแกรมคอมพิวเตอร์   พัฒนาขึ้นโดยนายเดนนิส  ริทชี่ (Dennis Ritche)  ในปี ค.ศ. 1972  เพื่อสร้างระบบปฏิบัติการยูนิกซ์
การประมวลผลแบบวน ( LOOP )
บทที่ 4 การรับและแสดงผลข้อมูล
บทที่ 7 ราคา Price.
คำสั่งวนซ้ำ (Looping)
Chapter 9 ตัวชี้ pointer.
การเขียนบทสำหรับสื่อ
ภาษา C เบื้องต้น.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
การจัดการข้อมูล (Organizing Data)
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 4 ตัวแปร (Variables)
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 13 การเขียนรหัสเทียม (Pseudo Code)
introduction to Computer Programming
บทที่ 7 ตัวแปรและการจัดการข้อมูล
Chapter 2 ตัวดำเนินการ และนิพจน์.
Week 5 C Programming.
ระบบตัวเลข, Machine code, และ Register
แสง และการมองเห็น.
ตัวแปรชนิดพอยเตอร์ (Pointer)
อุทธรณ์,ฎีกา.
Digital image Processing By Asst. Prof. Juthawut Chantharamalee
Introduction to Computer Programming
การเขียนโปรแกรมภาษา Java (ต่อ)
狗隻的訓練 聖士提反女子中學附屬小學 孫晞庭.
การวิเคราะห์โจทย์ปัญหา (Problem Analysis)
ทัศนธาตุและหลักการออกแบบ
การประชุมคณะทำงานการจัดการพลังงาน อาคาร บก. ทท
ใบสำเนางานนำเสนอ:

2.3.2 Contrast Stretching Contrast The contrast of an image is its distribution of light and dark pixels Fig. 2.12 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. 2.18 (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. 2.16 (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. 2.15 (a) Null transformation; (b) image; (c) negative transformation; (d) negative image. Page 60. 참조

Intensity transformations Fig. 2.17 (a) Contrast stretch transformation; (b) contrast stretched image; (c) Contrast compression transformation; (d) contrast compressed image. Fig. 2.18 (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. 2.19 (a) 2-bit bit-clipping transformation; (b) resulting image. Fig. 2.21 (a) Iso-intensity contouring transformation; (b) contoured image. Fig. 2.20 Bit clipped image contrast stretched. Page 64. 참조

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

Fig. 2.24 (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