โปรแกรมแรก OpenCV Python ด้วย PyCharm

OpenCV (Open source Computer Vision) เป็นไลบรารีฟังก์ชันการเขียนโปรแกรม (Library of Programming Functions) โดยส่วนใหญ่จะมุ่งเป้าไปที่การแสดงผลด้วยคอมพิวเตอร์แบบเรียลไทม์ (Real-Time Computer Vision)

ขอบเขตการใช้งานของ OpenCV ค่อนข้างกว้าง มีความสามารถหลากหลายหลากหลาย นอกจากรูปภาพธรรมดาแล้วยังใช้จัดการกับวีดีโอภาพเคลื่อนไหว อัลกอริธึมที่ใช้มีตั้งแต่แบบง่ายๆไปจนถึงระดับสูง


1. ติดตั้ง Python เวอร์ชั่น 3.7.6 ลงบน Windows 10


ดาวน์โหลดไฟล์ติดตั้ง Python เวอร์ชัน 3.7.6 (ซึ่งมีความเหมาะสมในการใช้งาน OpenCV) ได้ที่

https://www.python.org/downloads/release/python-376/


เลือก Windows x86-64 executable installer


การติดตั้ง ให้เลือก “Add Python 3.7 PATH” และกดตรง “Install Now”


2. ติดตั้งโปรแกรม PyCharm


โดย PyCharm จัดอยู่ในหมวด IDE (Integrated Development Environment) เพราะว่ามีเครื่องไม้เครื่องมือครบครันแบบ Full option เรียกได้ว่าเป็นหนึ่งในเครื่องมือในการเขียนโปรแกรมมิ่งภาษา Python ที่ดีที่สุดอีกตัวหนึ่ง ซึ่งทางผู้พัฒนาก็คือ Jetbrains บริษัทซอฟต์แวร์ยักษ์ใหญ่สัญชาติเช็ก เจ้าของ IDE ชื่อดังมากมายอีกหลายตัว

ดาวน์โหลดไฟล์ติดตั้ง PyCharm ได้ที่

https://www.jetbrains.com/pycharm/download/#section=windows


เลือกติดตั้งตัวฟรี คือ PyCharm Community


ให้เลือก .py และ Add “bin” folder to the PATH


เลือก Reboot now -> Finish (รีสตาร์ทคอมพิวเตอร์)


3. สร้างโปรเจค และ เพิ่มแพคเก็จ OpenCV


เปิดโปรแกรม PyCharm Community


เลือก New Project

ชื่อโปรเจคตามตัวอย่างคือ pythonProject -> Create


เพิ่มแพคเก็จ OpenCV โดยไปที่ File -> Settings…


ไปที่ Python Interpreter


เลือกเป็น Python 3.7 แล้ว คลิกเครื่องหมาย +


ทีช่องค้นหา พิมพ์ opencv -> คลิกที่ opencv-python -> Install Package


แสดงการติดตั้งสำเร็จ แล้วปิดหน้าต่างลงไป


แสดง แพคเก็จ OpenCV ที่เพิ่มเข้ามา -> OK


4. ทดสอบใช้งาน OpenCV


สร้างไฟล์ Python โดยคลิกขวาที่โฟลเดอร์ venv -> New -> Python File


ตั้งชื่อไฟล์ ในตัวอย่างเป็น test-opencv -> Enter


เขียนโค้ดดังนี้

import cv2
print("Package import")


ทดสอบการทำงานโดย คลิกขวา ในพื้นที่การเขียนโค้ด -> Run ‘test-opencv’


ที่ด้านล่าง แสดง Package import แสดงว่า OpenCV ของเราพร้อมใช้งานกับ Python แล้ว


5 .โปรแกรมแรก OpenCV Python


ดาวโหลดไฟล์วิดีโอ ball_tracking_example.zip

http://www.lungmaker.com/files/ball_tracking_example.zip


คลายซิป แล้วก๊อปปี้ไปที่โฟลเดอร์ venv ของโปรเจค Python

C:\Users\xxxxxxx\PycharmProjects\pythonProject\venv

ที่ไฟล์ test-opencv เขียนโค้ดใหม่ดังนี้

import cv2
import imutils
import time

greenLower = (29, 86, 6)
greenUpper = (64, 255, 255)

vs = cv2.VideoCapture("ball_tracking_example.mp4")
time.sleep(2.0)

while True:
    _, frame = vs.read()

    if frame is None:
        break

    blurred = cv2.GaussianBlur(frame, (11, 11), 0)
    width, height = frame.shape[:2]
    hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV)
    mask = cv2.inRange(hsv, greenLower, greenUpper)
    mask = cv2.erode(mask, None, iterations=2)
    mask = cv2.dilate(mask, None, iterations=2)
    cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
                            cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    center = None

    if len(cnts) > 0:
        c = max(cnts, key=cv2.contourArea)
        ((x, y), radius) = cv2.minEnclosingCircle(c)
        M = cv2.moments(c)
        center = (int(M["m10"] / M["m00"]), int(M["m01"] / M["m00"]))

        # To see the centroid clearly
        if radius > 10:
            cv2.circle(frame, (int(x), int(y)), int(radius), (0, 255, 255), 5)
            cv2.imwrite("circled_frame.png", cv2.resize(frame, (int(height / 2), int(width / 2))))
            cv2.circle(frame, center, 5, (0, 0, 255), -1)

    cv2.imshow("Frame", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

vs.release()
cv2.destroyAllWindows()


Run


แสดงการ Error ว่าไม่พบโมดูล,ชื่อ imutils ซึ่งเป็น library เบื้องต้นของ image processing พวกหมุนภาพ กลับภาพ ปรับขนาด


แก้ไขโดยการ เพิ่มแพคเก็จ imutils โดยขั้นตอนเหมือนกับ การเพิ่มแพคเก็จ OpenCV

โดยไปที่ File -> Settings… -> Python Interpreter -> คลิกเครื่องหมาย +

ทีช่องค้นหา พิมพ์ imutils -> คลิกที่ imutils -> Install Package


แสดงการติดตั้งสำเร็จ แล้วปิดหน้าต่างลงไป


แสดง แพคเก็จ imutils ที่เพิ่มเข้ามา -> OK


Run อีกครั้ง


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

โปรแกรมแรก OpenCV Python


6. ติดตามวัตถุจากกล้อง webcam


แก้ไขโค้ด บรรทัดที่ 8 จาก

vs = cv2.VideoCapture("ball_tracking_example.mp4")


เป็น

vs = cv2.VideoCapture(0)


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

โปรแกรมแรก OpenCV Python