เมื่อดวงตาของคนเรามองเห็นภาพได้ เปรียบเสมือนกล้องที่สามารถรับแสงแล้วแปลงเป็นข้อมูลภาพ แล้วถูกส่งต่อไปประมวลผลภาพบนคอมพิวเตอร์ (computer vision)
และ computer vision นี้เอง เป็นสิ่งที่ทำให้ผมผ่านทั้ง Pre-project, Project Engineering มาได้อย่างราบรื่น
บางคนอาจสงสัย Pre-project คืออะไร ? มันก็คือวิชาเรียนนึงตอนมหาลัยปี 3 ประมาณว่าให้ทำคล้ายกับโปรเจคจบ แต่ใน scale ที่เล็กกว่า มีเวลาทำน้อยกว่า เพื่อที่จะให้รู้ว่าโปรเจคจริงๆต้องทำแนวๆไหน แล้วหัวข้อแนวนี้เราพอจะไปได้หรือเปล่า แต่จริงๆแล้ว Image processing เป็นวิชาเรียนนึงในตอนปี4 เลยที่เดียว
เรามาเข้าเนื้อหากันเลยแล้วกัน ในที่นี้เราจะใช้ภาษา python ในการทำงาน นั้นก็เพราะว่าใช้งานง่าย และสามารถไปต่อยอดเรื่อง Machine learning ในอนาคตได้อีกด้วย แล้ว library ตัวชูโรงของเราก็คือ OpenCV สามารถเรียกใช้ด้วยคำสั่ง import cv2 และในที่นี้เราใช้ matplotlib ในการแสดงผลภาพบน Jupyter notebook
%matplotlib notebook เป็นลักษณะการแสดงผลของ matplotlib บน jupyter notebook
เริ่มจากการอ่านภาพด้วยคำสั่ง cv2.imread เราจะได้ข้อมูลภาพเก็บในตัวแปร img_bgr
- ตาlibrary opencv เนี้ย จะมีการอ่านภาพเป็นแบบ BGR(ฟ้า เขียว แดง) แทนที่จะเป็น RGB(แดง เขียว ฟ้า)
- ส่วนยาย matplotlib มีการแสดงผลภาพแบบ RGB ไม่ใช่ BGR
- ดังนั้นเราจึงทำการสลับมิติของภาพให้เป็น RGB ตามที่เราเข้าใจกันได้ง่ายๆ ด้วย cv2.cvtColor ได้เป็น img_rgb
- จากนั้นทำการแสดงผลภาพออกมาดูด้วยคำสั่ง plt.imshow ไปเลย
ต่อไปเราไปดูข้อมูลอื่นๆของภาพกัน
- เราดูขนาดของภาพด้วยการใช้ .shape จะเห็นว่าจะมีการบอกขนาดเป็น (สูง, กว้าง, ลึก)
- ทีนี้เราลองมาดูข้อมูลภาพด้วยคำสั่ง print เราจะเห็นค่าของแต่ละตำแหน่ง pixel อันที่จริงมันจะมีข้อมูลเยอะมาก แต่เราแสดงให้เห็นแค่คร่าวๆ อย่างที่เห็น 51 เป็นตำแหน่ง (0, 0, 0) คือซ้ายบนสุดของภาพ และแสดงค่ามิติของสีแดง (R)