แสดงบทความที่มีป้ายกำกับ ImageJ แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ImageJ แสดงบทความทั้งหมด

29 ตุลาคม 2557

ใช้ ImageJ หาขนาดของวัตถุ

ครูฟิสิกส์สอนฟิสิกส์แบบเน้นปฏิบัติ มาคราวนี้ให้นักเรียนวัดขนาดของวัตถุเล็กๆ ที่ถ้าเราใช้เครื่องมือวัดแบบทั่วๆไปทำงานแล้วจะไม่สะดวกอย่างมาก


เช่น ถ้าต้องการทราบขนาดเฉลี่ยของความยาว และความกว้างของเมล็ดงาขาวที่อยู่บนแครกเกอร์ธัญพืช ดังรูป เราจะต้องแคะเมล็ดงาออกมา แล้ววัดด้วยเวอร์เนียร์คาลิปเปอร์หรือไม่ก็ไมโครมิเตอร์ แต่เป็นที่น่าเสียดายที่เมล็ดงานั้นคงไม่มีใครกล้ากินอีก(น่าเสียดาย) วิธีแก้ไขก็คือ ImageJ ช่วยได้ โดยการหาไม้บรรทัดเป็นมาเทียบ โดยวางให้อยู่ในระนาบเดียวกัน จากนั้นก็ถ่ายภาพให้ระนาบนี้ออกมา จากภาพครูฟิสิกส์ถ่ายไม่ค่อยตรงเท่าไหร่ แต่อยากสาธิตให้ดูเพื่อเป็นแนวทางที่นักเรียนที่เรียนฟิสิกส์ปฏิบัติจะนำไปใช้ในการวัดของตนเอง แต่ต้องทำให้ได้ระนาบมากกว่านี้นะครับ

วิธีการที่จะแสดงต่อไปนี้ครูฟิสิกส์ใช้ ImageJ2 ซึ่งเป็นเวอร์ชั่นที่พัฒนาขึ้นมาอีกขึ้นของ ImageJ โดยดาวน์โหลดจากไซต์ของ Fiji  ซึ่งเป็นเวอร์ชั่นที่มีปลั๊กอินที่จะช่วยเราทำงานได้ละเอียดยิ่งขึ้น 

ภายหลังจากการติดตั้งโปรแกรมแล้ว ก็ดำเนินการตามขั้นตอนต่อไปนี้ได้เลยครับ

1. เปิดโปรแกรม ImageJ2 ขึ้นมา (หรือใครจะใช้ ImageJ เวอร์ชั่นแรกก็ได้) แล้วก็เปิดภาพถ่ายที่เราได้บันทึกมา

  2. มันยังไม่ค่อยตรง ครูฟิสิกส์จะทำให้มันตรงก่อนโดยใช้เครื่องมือวัดมุม แล้วก็หมุนให้มันตั้งฉากกับขอบภาพ ซึ่งวัดได้ 0.75 องศา โดยเลือกคำสั่ง Image>Transform>Rotate...


  3. หากมันยังดูเบี้ยว เพราะภาพที่เราถ่ายมามันเอียงก็สามารถปรับได้ด้วยการใช้คำสั่งปรับเพอร์สเปกทีฟ โดยเลือกคำสั่ง Plugins>Transform>Interactive Perspective (มีเฉพาะใน Image2 เวอร์ชั่นของ Fiji เท่านั้น ยกเว้นจะหาปลั๊กอินมาติตตั้งเอง)  ดังนั้นเวลาถ่ายภาพมา ถ่ายให้มันตรงๆ ตั้งแต่แรกจะได้ไม่ต้องมาแก้ไขความเบี้ยวภายหลัง 

หรือไม่ก็ใช้โปรแกรมที่เราถนัด เช่น โปรแกรม Paint.NET , GIMP หรืออะไรก็ได้ที่มันสามารถแก้ไขความบิดเบี้ยวนี้ได้ ทำการแก้ไขซะก่อนแล้วมาเปิดด้วย ImageJ 


4. วัดระยะบนไม้บรรทัดด้วยเครื่องมือวัด

ก่อนวัดอาจต้องขยายภาพให้มีขยายใหญ่ๆ เพื่อความสะดวกในการวัด (กดปุ่ม + บนคีย์บอร์ดถ้าต้องการซูมอิน กดปุ่ม - ถ้าต้องการซูมเอาท์)  ใช้เครื่องมือรูปมือ (Scrolling Tool) ขยับภาพไม้บรรทัดชัดๆ
ลากเครื่องมือวัดบนสเกลของไม้บรรทัด โดยครูฟิสิกส์ลากยาว 1 mm บนไม้บรรทัด จากนั้นกดปุ่ม Ctrl+M (หรือเลือกคำสั่ง Analyze>Measure    ก็ได้)

จำไว้ว่าหมายเลข 1 ของการวัดนี้คือระยะ 1 mm ความยาวบนรูปภาพคือ 22 pixel 

5. ทำแบบเดียวกัน แต่ครั้งนี้เลื่อนภาพมาบริเวณเม็ดงาขาว สมมติว่าเราจะวัดความยาวของเมล็ดงาขาวก่อน ก็เอาเครื่องมือวัดมาลากเส้นตามยาวของเมล็ดแล้วกดปุ่ม Ctrl+M  

ทำไปเรื่อยๆ จนกว่าจะได้จำนวนตัวอย่างที่เราตั้งใจ



7. สมมติว่าครูฟิสิกส์ทำการวัด 15 ครั้ง กดปุ่ม Ctrl+A (Edit>Select All)  กดปุ่ม  Cltr+C (Edit>Copy) แล้วเอามาวางในโปรแกรมที่เราจะเอามาคำนวณ เช่น Google Spreadsheet

ดูตัวอย่าง

1 23 111.535 78.091 151.646 -92.603 22.010
2 68 164.587 123.148 185.571 24.656 67.422
3 58 157.450 112.074 178.667 54.926 57.349
4 59 172.912 74.333 203.155 46.397 57.519
5 66 177.011 77.185 215.933 89.119 65.347
6 63 127.612 93.606 144.707 -19.592 62.425
7 62 146.456 107.772 161.442 -15.422 60.809
8 66 136.099 96.915 199.085 -30.510 65.170
9 60 134.333 88.630 149.412 -25.253 59.044
10 62 134.268 91.889 209.732 -43.025 61.348
11 71 142.449 44.333 166.748 103.241 69.857
12 69 117.729 82.667 157.333 180.000 68.000
13 63 180.414 147.333 195.916 -137.603 62.290
14 55 170.256 136.667 191.494 -126.027 54.406
15 62 152.350 126.000 167.159 -17.241 60.729
16 62 148.452 107.512 169.991 9.462 60.828

ทำการหาค่าเฉลี่ยของความยาวของเมล็ดงาได้ 62.2 pixel  ค่าความคลาดเคลื่อนมาตรฐาน 4.3 Pixel (วัดครั้งที่ 2 ถึงครั้งที่ 16) 

8. เทียบบัญญัติไตรยางค์
    ระยะบนภาพ   22    pixel เท่ากับระยะจริง   1 mm
    ระยะบนภาพ  62.2  pixel จะเท่ากับระยะจริง   (1mm)(62.2 pixel)/(22 pixel) = 2.8 mm

    ความคลาดเคลื่อนมาตรฐาน 0.2 mm


เสร็จแล้วงานวัดความยาวของเมล็ดงา เหลือวัดความกว้าง ก็ทำแบบเดียวกันนี่แหละครับ แต่ครูฟิสิกส์ขอไปทำเล่นเอง ทำให้ดูเพียงแค่หละ  

การประยุกต์

จะเห็นว่าแนวคิดแบบนี้สามารถนำไปประยุกต์ใช้ได้ในหลายๆ สถานการณ์เช่น วัดรูพรุนของขนมปัง วัดขนาดของเส้นใบที่อยู่บนใบไม้ วัดขนาดของหยดน้ำข้างแก้ว และอื่นๆ อีกมากมาย 

เทคนิคอาจจะยุ่งยากหน่อย แต่ก็ยุ่งยากน้อยกว่าการเอาเวอร์เนียร์วัดเองแน่ๆ ที่สำคัญก็คือการถ่ายภาพ (ด้วยกล้องอะไรก็ได้) ระนาบของเซนเซอร์รับภาพจะต้องขนานกับสิ่งที่จะวัดเสมอ และควรจะวัดบริเวณกลางๆ ภาพหน่อย

ใครมีปัญหาอะไรก็โพสต์คำถามทิ้งไว้  แล้วพบกันใหม่ครับ


28 กรกฎาคม 2556

สนุกกับฟิสิกส์ : หาค่า g โดยการวิเคราะห์ภาพวิดีโอจากโทรศัพท์มือถือ ตอนจบ

ก่อนจะดำเนินการต่อ ครูมีรายการให้ตรวจสอบตามนี้ก่อนนะครับ ว่าเราได้ทำครบถ้วนหรือยัง

  • รู้ 35mm Equivalent ของกล้องบนมือถือเรา
  • บันทึกภาพการตกของวัตถุเป็นวิดีโอคลิปแล้วโอนไฟล์เข้าไปไว้ในฮาร์ดดิสก์ของเครื่อง หรือไม่ก็ถอดเมมโมรีการ์ดของกล้องมาต่อการ์ดรีดเดอร์(ก็แล้วแต่เทคนิคของใครของมัน)
  • และมีโปรแกรมแยกภาพวิดีโอออกมาเป็นภาพนิ่ง(FreeVideo to JPG converter)และโปรแกรมวัดระยะในภาพ ImageJ 
เมื่อเรียบร้อยแล้วก็ดำเนินการต่อไปได้เลย ถ้ายังไม่มีก็ย้อนกลับไปอ่านตอนที่แล้วก่อน

การตรวจสอบจำนวนอัตราการแสดงภาพของคลิปวิดีโอ

คลิปวิดีโอก็คือชุดของภาพนิ่งที่มาแสดงด้วยอัตราการแสดงภาพนิ่งเฉพาะจำนวนหนึ่ง (หรือต่อๆไปครูจะเรียกว่า frame rate) ได้เจ้า frame rate นี้มันมีมาตรฐานของมันอยู่ เช่น ภาพยนตร์ในยุคฟิล์ม frame rate ก็คือ 24 ภาพ/วินาที (ต่อๆไป จะใช้คำย่อว่า fps) ส่วนภาพจากโทรทัศน์ในประเทศไทยเราก็จะแสดงภาพ 25 fps เป็นต้น แต่ภาพจากคลิปวิดีโอมักไม่ค่อยอิงมาตรฐานสักเท่าไหร่ เราต้องตรวจสอบเอง วิธีการตรวจสอบก็ง่ายมาก โดยเฉพาะอย่างยิ่งใครที่ใช้ Wndows 7 เป็นโอเอสของเครื่อง วิชาการก็คือคลิกขวาที่คลิปวิดีโอของเรา คลิก Properties แล้วก็เลือกแท็บ Details ดังภาพ


จะเห็นว่าคลิปวิดีโอของครูมีขนาดภาพ 640x480 pixels มี Frame rate  เท่ากับ 17 fps  
อันที่จริงมีหลายวิธีในการดูค่า frame rate นี้ ให้ปรึกษาครูสอนคอมพิวเตอร์เอา ถามว่าเอาค่านี้มาทำอะไร ก็ต้องอธิบายต่อว่า นี่คือฐานเวลาที่เราจะเอาไปคำนวณหาความเร็วไงครับ เพราะว่า 17 fps ความหมายของมันคือ มันแสดงภาพ 17 ภาพต่อวินาที ดังนั้น ระยะเวลาแต่ละภาพนั้นจะห่างกัน 1/17 วินาที นั่นเอง  เคลียร์นะครับ เอาล่ะไปขั้นตอนต่อไป

ใช้โปรแกรมแยกคลิปวิดีโอมาเป็นภาพนิ่ง

เปิดโปรแกรม FreeVideo to jpg ขึ้นมาครับ แล้วเลือกปุ่มคำสั่ง Add Files.... 


ไปเลือกเอาไฟล์ที่เป็นคลิปวิดีโอของเราแล้วเปิดมันขึ้นมา

แล้วมาคลิกเลือก ปุ่ม Every Frame ในวินโดวส์ของโปรแกรม เลือกที่ตั้งที่จะบันทึกภาพ(เลือกแล้วจำไว้ดีๆ นะครับ เดี๋ยวหาไฟล์ภาพที่แยกแล้วไม่เจอ) แล้วก็คลิก convert 



เสร็จแล้วก็คลิกปุ่มดังแสดงในภาพ เพื่อเปิดโฟลเดอร์ที่โปรแกรมมันไปสร้างไว้ให้


จบขั้นตอนการแยกคลิปวิดีโอไปเป็นภาพนิ่ง

ทำความเข้าใจกับภาพที่ได้

เมื่อเปิดโฟลเดอร์ดูไฟล์ภาพนิ่งที่แยกออกมาจากคลิป จะเห็นภาพต่างๆ เป็นจำนวนมาก


ใช้โปรแกรมเปิดดูภาพที่เราชอบใช้ (ครูใช้ FastStone) ดูภาพ จะเห็นภาพตัววัตถุ(น็อต) ที่เราปล่อยลงมาอยู่ในตำแหน่งต่างๆ ที่ไม่ซ้ำกันในแต่ละภาพ ถ้าเลื่อนปุ่มลูกศรซ้าย-ขวา เร็วๆ เราก็จะเห็นเป็นแอนิเมชั่น อีกแบบหนึ่ง 

เราจะนำภาพเหล่านี้ออกมา 2 คู่ คู่แรกเอาตอนต้นๆ คู่หลังก็ถัดออกมาอีก ถามว่าเอามาทำอะไร คำตอบก็คือ เอามาหา u (ความเร็วต้นของวัตถุ) และหา v (ความเร็วปลาย) จากการพิจารณาภาพแล้ว ครูเลือกเอาคู่แรกคือ ภาพที่ 1-2 มาหาความเร็วต้นและภาพที่ 6-7 มาหาความเร็วปลาย  ซึ่งความเร็วต้น(u) และความเร็วปลาย(v) ที่ครูใช้นั้นห่างกัน 5 เฟรม หรือคิดเป็นเวลาก็คือ 5*1/17=5/17 วินาที นั่นเอง หรือถ้าเขียนเป็นสมการก็จะได้ว่า
t = t2-t1
จะได้  t = 5/17  s
จดตัวเลขหรือจำตัวเลขนี้ไว้ครับว่า เป็นเวลาระหว่างระหว่างการวัดความต้น(u) และความเร็วปลาย(v)

ใช้ ImageJ วัดระยะในหน่วยของพิกเซลในภาพ

เปิดโปรแกรมขึ้นมาก่อนเลย (ถ้ายังไม่ติดตั้งก็รีบติดตั้งซะ) โปรแกรมนี้ต้องใช้ตัว Java Runtime ด้วยนะครับ อาจจำเป็นต้องดาวน์โหลดมาทั้งสอง หากทำไม่เป็นอีกให้ไปปรึกษาครูสอนคอมพิวเตอร์

  1. เลือก File>Open แล้วก็เลือกไฟล์ภาพที่ 1 แล้วกดปุ่ม Ctrl+A แล้วก็ Ctrl+C (เลือกทั้งหมดแล้วก๊อปปี้) แล้วปิดไฟล์นี้ได้เลยครับ
  2. เลือก File>Open แล้วเลือกไฟล์ภาพที่ 2 แล้วคลิก Edit>Paste control... แล้วเลือก diferent
  3. แล้วคลิก Edit>Paste อีกครั้ง มันจะเป็นภาพมืดๆ แล้วจะมีขาว-เทาๆ บริเวณที่ภาพทั้งสองมันแตกต่างกัน คลิก File > Save As > .jpeg บันทึกไฟล์นี้เก็บไว้ ครูเรียกมันว่า "u.jpg"
  4. ต่อมาให้เลือกปุ่มวัดระยะแนวตรงบนแถบเครื่องมือ ดังภาพ


    แต่ถ้าภาพมันเล็กไปก็ใช้แว่นขยาย(ถัดมาทางขวาอีก 5 ปุ่ม) ไปคลิกซ้ายบริเวณภาพ ถ้าจะย่อก็คลิกขวาที่บริเวณภาพ
  5. เอาเมาส์ไปคลิกตำแหน่งที่รอยเทาๆ ด้านซ้ายก่อนแล้วลากไปทางขวากะให้กึ่งกลางรอยเทาๆ ด้านขวา ดังภาพ
  6. กดปุ่ม Ctrl+M หรือไม่ก็คลิก Analyze > Measure


    สิ่งที่ได้คือ ระยะทางในหน่วยของพิกเซลที่วัตถุเคลื่อนที่ได้ระหว่างภาพ1-2
  7. ทำแบบเดียวกันตั้งแต่ขั้นตอนที่ 1 จนถึง 7 แต่ครานี้ให้ทำกับภาพที่ 6-7 แต่ตั้งกันในขั้นตอนที่ 3 ที่เราตั้งชื่อให้ตั้งไฟล์ว่า "v.jpg"
  8. สิ่งที่เราได้จากการวัดระยะในหน่วย pixels จากภาพทั้งสองคู่

การคำนวณหา u , v และ g

จำบทความนี้ตอนแรกได้ไหมครับ ที่ครูบอกว่าต้องวัดระยะระหว่างระนาบกล้องกับเส้นทางที่วัตถุตก ตอนนี้ เราจะเอามาใช้ สำหรับการทดลองของครูคือ 157 cm 


จากภาพทางซ้ายมือก็คือ ภาพบน ccd ส่วนภาพทางขวามือก็คือระยะที่วัตถุเคลื่อนที่ได้ แต่จากความละเอียดของภาพที่เราได้จากภาพนิ่ง และขนาดของ ccd เราจะได้ความสัมพันธ์ดังภาพด้านล่างนี้


ดังนั้นในตอนนี้เราจึงหาขนาดของภาพ(ด้านขวามือ) ที่ปรากฎบน CCD ได้ดังนี้ 
ขนาดความสูงของภาพด้านขวามือ = 157*3.59/4.31cm=130.77 cm
และขนาด 130.77 cm นี้จะไปปรากฎเต็ม CCD ที่มีความละเอียด 640 pixels ฉะนั้น เมื่อเรารู้หน่วย pixels บน ccd (จากการวัดด้วย ImageJ) เราก็สามารถหาระยะในหน่วยของ cm ได้ทันทีด้วยการเทียบอัตราส่วน

ตัวอย่าง การหาระยะทางที่วัตถุเคลื่อนที่ได้จากภาพคู่แรก = 35.002*130.77/640 cm = 7.15cm
ความเร็วของวัตถุจากภาพคู่แรกคือ 7.15cm*1/17s = 7.15*17 cm/s = 121.55 cm/s หรือ 1.2155 m/s
(ตัวเลข 1/17 s มาจากการหา frame rate ที่ปรากฎในบทความตอนแรก) 

ในทำนองเดียวกันเราก็สามารถหา v ได้ โดยหาระยะก่อน(ได้เท่ากับ 116.25*130.77/640=23.75cm) ความเร็วของวัตถุก็คำนวณได้เท่ากับ 23.75*17=4.0380 m/s

ทีนี้ขั้นตอนสุดท้ายก็มาหาความเร่งของค่า g ซึ่งคำนวณจากความสัมพันธ์ดังนี้

g = (v-u)/t
 ทีนี้ก็แทนค่าลงไป  จะได้
g = (4.0380-1.2155)/(5/17) = 9.5965 m/s2

นี่คือค่าจากการทดลองของกล้องดิจิทัลจาก LG Opitimus one P500 ครับ

คาดเคลื่อนไปเท่าไร

 ก็คำนวณลองดู
 % error = |9.81-9.5965|*100/9.81 = 2.17%

ก็ไม่เลวนะครับ

เอ้ สงสัยจะต้องโละ ticker timer ที่ห้องแล็บทิ้งซะ แล้วหันมาใช้กล้องจากโทรศัพท์มือถือมาทำการทดลองแทนดีน้าาา