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

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

thelordbank
PHP Full Member
PHP Full Member
โพสต์: 39
ลงทะเบียนเมื่อ: 31/07/2017 10:18 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย thelordbank »

ในการตรวจจับวัตถุจากการติดตามสีด้วย 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

โค้ด: เลือกทั้งหมด

import cv2
import numpy as np
 
cap = cv2.VideoCapture(0) # รับวิดีโอจากกล้อง
 
while(1):
 
    # รับข้อมูลจากเว็บแคม
    _, frame = cap.read()
 
    # แปลงสี BGR ไปยัง HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
 
    # ช่วงของสีเหลืองในระบบ HSV
    lower_yellow = np.array([10,100,100], dtype=np.uint8)
    upper_yellow = np.array([30,255,255], dtype=np.uint8)
 
    # จำกัดภาพ HSV รับเฉพาะสีเหลิอง
    yellow = cv2.inRange(hsv, lower_yellow, upper_yellow)
 
    # Bitwise-AND mask และภาพต้นฉบับ
    mask = cv2.bitwise_and(frame,frame, mask= yellow)
 
    cv2.imshow('frame',frame)
    cv2.imshow('yellow',yellow)
    cv2.imshow('mask',mask)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break
 
cv2.destroyAllWindows()
Result:
รูปภาพ


สามารถเลือกค่าสี HSV ได้เพิ่มเติมที่นี่ http://www.workwithcolor.com/red-color-hue-range-01.htm
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: athirach.offcial และบุคลทั่วไป 67