Image Processing Python สอน
nextbackseo@gmail.com | Posted on |

Image Processing Python สอน
เมื่อดวงตาของคนเรามองเห็นภาพได้ เปรียบเสมือนกล้องที่สามารถรับแสงแล้วแปลงเป็นข้อมูลภาพ Arduino Thailand แล้วถูกส่งต่อไปประมวลผลภาพบนคอมพิวเตอร์ (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 Image Processing Python สอน %matplotlib notebook เป็นลักษณะการแสดงผลของ matplotlib บน jupyter notebook เริ่มจากการอ่านภาพด้วยคำสั่ง cv2.imread เราจะได้ข้อมูลภาพเก็บในตัวแปร img_bgr ตาlibrary opencv เนี้ย จะมีการอ่านภาพเป็นแบบ BGR(ฟ้า เขียว แดง) แทนที่จะเป็น RGB(แดง เขียว ฟ้า) ส่วนยาย matplotlib มีการแสดงผลภาพแบบ RGB ไม่ใช่ BGR – ดังนั้นเราจึงทำการสลับมิติของภาพให้เป็น RGB ตามที่เราเข้าใจกันได้ง่ายๆ ด้วย cv2.cvtColor ได้เป็น img_rgb จากนั้นทำการแสดงผลภาพออกมาดูด้วยคำสั่ง plt.imshow ไปเลย
Image Processing Python สอนไปดูข้อมูลอื่นๆของภาพกัน
Image Processing Python สอน เราดูขนาดของภาพด้วยการใช้ .shape จะเห็นว่าจะมีการบอกขนาดเป็น (สูง, กว้าง, ลึก) ทีนี้เราลองมาดูข้อมูลภาพด้วยคำสั่ง print เราจะเห็นค่าของแต่ละตำแหน่ง pixel อันที่จริงมันจะมีข้อมูลเยอะมาก แต่เราแสดงให้เห็นแค่คร่าวๆ อย่างที่เห็น 51 เป็นตำแหน่ง (0, 0, 0) คือซ้ายบนสุดของภาพ และแสดงค่ามิติของสีแดง (R) เมื่อคุณต้องการนับสิ่งของที่มีขนาดต่างกันจากภาพที่เราถ่ายมา เช่น รูปของใช้ รูปคนที่มีความสูงต่างกัน Image Processing Python OpenCV หรือรูปภาพของเหรียญขนาดที่แตกต่างกัน คุณสามารถทำได้ง่ายๆเพียงแค่ใช้ image processing บทความนี้จะมาบอกเคล็ดลับในการใช้ image processing ในการหาขนาดของเหรียญและแสดงชนิดของเหรียญ โดยใช้ภาษา Python และรันโค้ดผ่าน Google Colab
- ขั้นตอนที่ 1 นำเข้าไลบรารี OpenCV และ Matplotlib
การ import library OpenCV (Open Source Computer Vision Library) เป็น library สำหรับการประมวลผลภาพและวิดีโอ ส่วนการ import module pyplot ซึ่งเป็นส่วนหนึ่งของ library Matplotlib จะเป็น library สำหรับการวาดกราฟและภาพแสดงผลใน Python.
import cv2
from matplotlib import pyplot as plt
- ขั้นตอนที่ 2 อัปโหลดไฟล์รูปภาพ
อัพโหลดไฟล์จาก local machine เข้าสู่ Google Colaboratory โดยจะมีการเปิดหน้าต่างเลือกไฟล์ขึ้นมาให้เลือก และหลังจากเลือกไฟล์เสร็จเรียบร้อยแล้ว ไฟล์จะถูกอัพโหลดขึ้น Colab และบันทึกไว้ในตัวแปร uploaded ซึ่งจะเป็น dictionary ที่เก็บชื่อไฟล์และข้อมูลไฟล์ของไฟล์ที่ถูกอัพโหลด
from google.colab import files
uploaded = files.upload()
ภาพแสดงเมื่อ upload images เสร็จ
- ขั้นตอนที่ 3 ประมวลผลภาพ
อ่านภาพที่ชื่อว่า “coin.jpg” ในรูปแบบภาพสีและเก็บไว้ในตัวแปร coin_colorจากนั้นแสดงภาพที่เก็บไว้ในตัวแปร coin_color ที่เป็นภาพสี ด้วย Matplotlib โดยไม่ได้แปลงเป็นภาพขาว-ดำ
coin_color = cv2.imread(‘coin.jpg’)
plt.imshow(coin_color)
plt.show()
ใช้ไลบรารี OpenCV แปลงรูปภาพจากสีเป็นโทนเทา (grayscale) และทำการทำ Thresholding บนรูปภาพ การกำหนด threshold ที่เหมาะสมจะต้องพิจารณาจากคุณสมบัติของภาพนั้น ๆ เช่น ระดับความเข้มของพื้นหลังและวัตถุที่ต้องการจะเห็น หรือลักษณะของแสงที่เป็นสาเหตุให้เกิดเงาโค้งบนวัตถุ โดยจะกำนหนดสีดำ 235 และสีขาว 255 ใช้ cv2.THRESH_BINARY_INV ซึ่งหมายความว่าจะกลับสีของภาพจากดำเป็นขาว และขาวเป็นดำ และแสดงผลรูปภาพที่ได้หลังจาก Thresholding แล้ว
coin_gray = cv2.cvtColor(coin_color,cv2.COLOR_BGR2GRAY)
ret,coin_th = cv2.threshold(coin_gray,235,255,cv2.THRESH_BINARY_INV)
plt.imshow(coin_th)
plt.show()

เนื้อหาที่เกี่ยวข้อง
1. รั้วตาข่ายถักปม เหมาะสำหรับงานช่างทุกชนิด
รั้วตาข่ายถักปม เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการสร้างรั้วที่มีความทนทานและสวยงาม รั้วตาข่ายนี้ทำจากตาข่ายเหล็กที่ถูกถักปมอย่างละเอียดเพื่อเพิ่มความแข็งแรง ตาข่ายลวดชนิดนี้ยังมีคุณสมบัติที่ทนทานต่อสภาพอากาศ ทำให้เหมาะสำหรับการใช้งานภายนอกเป็นอย่างยิ่ง รั้วตาข่ายถักปมมีประโยชน์หลายด้าน เช่น การใช้เป็นรั้วบ้าน รั้วฟาร์ม และรั้วสวน ด้วยความสามารถในการป้องกันการบุกรุกและการป้องกันสัตว์ รั้วนี้ยังสามารถใช้เป็นตาข่ายกันสัตว์ เพื่อป้องกันสัตว์เลี้ยงหรือสัตว์ป่าเข้ามาในพื้นที่ที่เราต้องการป้องกัน ตาข่ายกันนกและตาข่ายกันแมลงก็เป็นอีกหนึ่งการใช้งานที่นิยมกัน สำหรับการใช้งานในพื้นที่ขนาดใหญ่ รั้วลวดตาข่ายเป็นตัวเลือกที่ดี เพราะสามารถติดตั้งได้ง่ายและรวดเร็ว ทั้งยังมีน้ำหนักเบา รั้วเหล็กถักปมทำให้การติดตั้งไม่ต้องใช้อุปกรณ์พิเศษ ตาข่ายสังกะสีที่ใช้ทำรั้วยังช่วยเพิ่มความทนทานต่อการเกิดสนิม ทำให้รั้วนี้มีอายุการใช้งานยาวนาน
การใช้ รั้วตาข่ายถักปม ยังเหมาะสมสำหรับการป้องกันการบุกรุก รั้วนี้มีความสูงและความแข็งแรงที่เหมาะสมสำหรับการป้องกันคนแปลกหน้าหรือผู้ไม่หวังดี รั้วป้องกันการบุกรุกนี้ยังสามารถใช้เป็นรั้วป้องกันสัตว์ เพื่อป้องกันสัตว์ที่ไม่ต้องการเข้ามาในพื้นที่ รั้วรักษาความปลอดภัยนี้มีคุณสมบัติที่ทนทานและแข็งแรง ทำให้มั่นใจได้ว่าเราจะได้รับความปลอดภัยสูงสุด
ใส่ความเห็น