Just another WordPress.com site

สมมติว่าเรามีสี 2 สี ให้เป็นสี A กับสี B ถ้าเราต้องการไล่สีแบบต่อเนื่องจากสีหนึ่งไปยังอีกสีหนึ่ง เราสามารถทำได้โดยใช้สมการ

โดย มีค่าไล่ตั้งแต่ ถึง 

ต่อไปเราจะมาทำความรู้จักพิกัดของแกนรูปภาพในคอมพิวเตอร์กัน
แกน x และแกน y ในคอมพิวเตอร์จะมีการตั้งแกนในลักษณะต่างจากพิกัด 2 มิติที่เราๆคุ้นเคยกันดังนี้ครับ

หน่วยวัดระยะที่ใช้ในระบบพิกัดนี้จะเป็น pixel (ระยะ 1 pixel มีค่าเท่ากับ 1 หน่วย)

ข้อมูลของรูปภาพขนาดความสูง H pixel ความกว้าง W pixel จะอยู่ในรูปแบบอาเรย์ 3 มิติ H*W*3

โดยอาเรย์แผ่นที่หนึ่งเป็นค่าระดับความเข้มของสีแดง(r) ของพิกัด (x,y) ต่างๆ ซึ่งแต่ละจุดมีค่าอยู่ 256 ระดับ คือตั้งแต่ 0 ถึง 255

ส่วนอาเรย์แผ่นที่สองและแผ่นที่สามแทนค่าระดับความเข้มของสีเขียว(g) และสีน้ำเงิน(b) ของพิกัด (x,y) ต่างๆ ซึ่งก็มีค่าตัวเลขอยู่ 256 ระดับเช่นกัน คือตั้งแต่ 0 ถึง 255

ต่อไปเราจะมาดูวิธีสร้างการไล่โทนสีสองสีกัน โดยผมจะไล่จากสีแดงไปยังสีเขียว

1. เริ่มต้นผมจะสร้างอาเรย์ขนาด 500*800*3 โดยสมาชิกทุกตัวมีค่าเป็น 0 สมมติตั้งชื่อมันว่า a

ในขั้นตอนนี้ผมจะได้ a เป็นภาพขนาดความสูง 500 pixel ความกว้าง 800 pixel ซึ่งมีสีดำสนิท

2. ต่อไปผมจะสร้างอาเรย์ขนาด 500*800*3 มาอีก 2 ชุดซึ่งเก็บสีแดงบริสุทธิ์ชุดนึง ให้ชื่อว่า f กับเก็บสีเขียวบริสุทธิ์อีกชุดนึงให้ชื่อว่า g

f สามารถสร้างได้โดยกำหนดให้สมาชิกในแผ่นที่หนึ่งเป็น 255 ทุกตัว ส่วนแผ่นที่สองกับสามมีค่าเป็น 0 หมด

ส่วน g สามารถสร้างได้โดยกำหนดให้สมาชิกในแผ่นที่สองเป็น 255 ทุกตัว ส่วนแผ่นที่หนึ่งกับสามมีค่าเป็น 0 หมด

3. ต่อไปผมจะไล่สีจากพิกัด x=200 ถึง x=500

ผมจะสร้างแกนโคออดิเนตใหม่ชื่อว่า แกน x’ และ y’ โดยแกนนี้ได้จากการเลื่อนแกน xy ไปทางขวา 200 pixel ดังรูป

เราจะได้ว่า x’ มีความสัมพันธ์กับ x ตามสมการ

x’=x-200…………………..(*)

ดังนั้น x’ ในที่นี้จะมีค่าตั้งแต่ x’=200-200=0 ถึง x’=500-200=300

เพื่อความสะดวกเราจะให้ d=300

4. สำหรับพิกัด (x,y) ใดๆ(x มีค่าตั้งแต่ 1 ถึง 800 ส่วน y มีค่าตั้งแต่ 1 ถึง 500) เราจะทำการหา x’ โดยใช้สูตร (*)

แล้วทำการตรวจสอบว่าค่า x’ อยู่ในช่วง 0 ถึง 300 รึเปล่า

ถ้าใช่ เราจะให้

a(y,x,1):=(1-x’/d)*f(y,x,1)+(x’/d)*g(y,x,1)

a(y,x,2):=(1-x’/d)*f(y,x,2)+(x’/d)*g(y,x,2)

a(y,x,3):=(1-x’/d)*f(y,x,3)+(x’/d)*g(y,x,3)

เพียงเท่านี้เราก็จะได้ภาพที่มีการไล่โทนสีจากแดงไปเขียว เริ่มตั้งแต่ x=200 ถึง x=500 แล้วครับ

ต่อไปเราจะใช้วิธีนี้ลองไล่โทนอื่นดูบ้างครับ

เริ่มจากโทนสี autumn ซึ่งไล่จากโทนแดง(255,0,0) ไปยังเหลือง (255,255,0)

ต่อด้วยโทนสี summer ซึ่งไล่จากโทนเขียว (0,255,0) ไปยังเหลือง (255,255,0)

ต่อด้วยโทนสี spring ซึ่งไล่จากโทนบานเย็น (0,255,255) ไปยังเหลือง (255,255,0)

ต่อด้วยโทนสี winter ซึ่งไล่จากโทนน้ำเงิน (0,0,255) ไปยังเขียว (0,255,0)

ต่อด้วยโทนสี cool ซึ่งไล่จากโทนฟ้า (0,255,255) ไปยังเหลือง (255,0,255)

ปิดท้ายด้วยด้วยโทนสี gray ซึ่งไล่จากโทนดำ (0,0,0) ไปยังขาว (255,255,255)

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: