11 มิถุนายน 2558

Published มิถุนายน 11, 2558 by with 4 comments

ติดตามสีด้วย OpenCV กับ Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมตรวจจับวัตถุด้วยการติดตามสีด้วย OpenCV กับภาษา Python กันครับ :D


อ่านบทความก่อนหน้านี้ได้จาก Tag OpenCV

ในการตรวจจับวัตถุจากการติดตามสีด้วย OpenCV กับ Python มีคำสั่งใช้งานดังนี้ครับ
cv2.inRange(hsv,ค่าสี HSV ช่วงเริ่มต้น , ค่าสี HSV ช่วงสิ้นสุด)

เป็นคำสั่งใช้ตรวจจับสีที่อยู่ในช่วงสี HSV ที่กำหนดครับ ในการกำหนดค่าสี HSV ช่วงเริ่มต้น - สิ้นสุด ส่วนใหญ่จะใช้โมดูล numpy เข้ามาช่วยเรื่องการเขียนช่วงข้อมูลสี HSV ครับ

cv2.bitwise_and(cv2.bitwise_and(src1, src2[, dst[, mask]]))


  • src1 - ชุดข้อมูลแรก
  • src2 - ชุดข้อมูลที่สอง
  • dst - ชุดข้อมูลผลลัพธ์ที่มีขนาดและชนิดเดียวกันเป็นชุดข้อมูลสำหรับการป้อนค่า
  • mask – เป็นเหมือนหน้ากากที่รับค่ามารวมด้วย
คำสั่งนี้ส่วนใหญ่มักจะนำเฟรมปกติกับเฟรมจากคำสั่ง cv2.inRange() มารวมกันเพื่อเปรียบเทียบกับสีจริงครับ

เรามาลองเขียนโปรแกรมตรวจจับช่วงสีเหลืองด้วย OpenCV กับ Python กันครับ

ผลลัพธ์

ตรวจจับวัตถุจากสีด้วย OpenCV กับ Python

สามารถเลือกค่าสี HSV ได้ตามวิธีในเว็บนี้ครับ http://www.workwithcolor.com/red-color-hue-range-01.htm
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

4 ความคิดเห็น:

  1. ถ้าเราต้องการเป็นสีแดงเปลี่ยนตรงไหนบ้าง

    ตอบกลับลบ
    คำตอบ
    1. lower_yellow = np.array([10,100,100], dtype=np.uint8)
      upper_yellow = np.array([30,255,255], dtype=np.uint8)

      เปลี่ยนตรงชุดโค้ดด้านบน 2 บันทัดนี้นะครับ เปลี่ยนตรงค่าใน array ซึ่งค่าสีนั้นเป็นค่าที่แปลงมาจาก RGB มาเป็นค่าสีชนิด HSV ครับเป็นค่าช่วงสีระหว่าง lower และ upper นะครับคือช่วงระหว่าง 0- 256 นะครับเป็นค่าสีเฉพาะของชนิด HSV ครับ

      ลบ
  2. ถ้าเราต้องการเป็นสีแดงเปลี่ยนตรงไหนบ้าง

    ตอบกลับลบ
  3. ถ้าต้องการเปลี่ยนเป็นสีแดงทำยังไง

    ตอบกลับลบ

แสดงความคิดเห็นได้ครับ :)