VAM_CV SDK

supported by VAMStack Co., Ltd.

Installation

1. Download package VAM_CV and requirements.txt ลงในโฟลเดอร์ที่ติดตั้ง Visual environment และไลบารี่ OpenCV

  • เปิด requirements.txt ทำการลบบรรทัด pkg-resources==0.0.0 และบันทึกการแก้ไข

2. เปิด terminal เข้าโฟลเดอร์ที่ติดตั้ง Visual environment และไลบารี่ OpenCV

$ cd opencv

3. เปิด Visual environment

## windows
$ <C:path\your\project>\env\Scripts\activate.bat

## ubuntu & mac
$ source venv/bin/activate

4. installation

$ pip install industry_machine_vision-0.0.1-py3-none-any.whl
$ pip install -r requirements.txt
  • check package in env

5. command “code .” in terminal

6. create file vam_color.py and vam_measuring.py

SDK

Color

ประกอบไปด้วน 2 ฟังก์ชันการทำงาน

1. visualize_colors

ใช้ในการค้นหาค่าสีภายในภาพด้วยการรับค่าจำนวนกลุ่มสีจากผู้ใช้มาใช้ในการแบ่งกลุ่มของข้อมูลสีภายในภาพ ซึ่งผลลัพธ์ที่ได้จะมี 2 อย่างคือ ภาพผลลัพธ์การจัดกลุ่มค่าสีที่ผู้ใช้ต้องการและค่าสี RGB ทั้งหมดที่ได้จากการจัดกลุ่ม โดยจะเรียงลำดับจากค่าสีที่พบน้อยที่สุดไปจนถึงค่าสีที่พบมากที่สุดตามลำดับ

$ visualize_colors(image, group_colors, height=None, width=None)

Parameters:

  • image => ภาพสี RGB ที่ผู้ใช้ต้องการ

  • group_colors (integer) => จำนวนกลุ่มสีที่ผู้ใช้ต้องการ

  • height (integer or None) => ความสูงของภาพผลลัพธ์การจัดกลุ่มค่าสี

  • width (integer or None) => ความกว้างของภาพผลลัพธ์ค่าสี

Return:

  • image => ภาพผลลัพธ์การจัดกลุ่มค่าสี

  • RGB(list) => ค่าสี RGB ทั้งหมดที่ได้จากการจัดกลุ่มสี

Example:

color = VamCV.color()
img,list_colors = color.visualize_colors(image,7)

print(list_colors)

cv2.imshow("Image",img)
cv2.waitKey(0) 

2. color_detection

ใช้ตรวจจับสีที่ผู้ใช้ต้องการได้เพียงสีเดียว โดยการรับค่าสี RGB ที่ผู้ใช้ต้องการมาเปลี่ยนเป็นค่าสี HSV เพื่อใช้ในการตรวจจับสีในภาพ ซึ่งฟังก์ชันนี้สามารถรับค่าสี RGB จากฟังก์ชัน visualize_colors มาใช้ได้

$ color_detection(image, RGB, range_HSV=None, area=None)

Parameters:

  • image => ภาพสี RGB ที่ผู้ใช้ต้องการ

  • RGB (integer(R,G,B)) => ค่าสีหรือความสว่างที่มีค่าตั้งแต่ 0-255 ต่อหนึ่งช่องสี

  • range_HSV (integer or None) => ค่าช่วงความต่างที่จะนำมาใช้คำนวณหาค่าสีสูงสุดและต่ำสุดของค่าสี HSV เพื่อใช้ในารตรวจจับ

  • area (integer or None) => พื้นที่ขั้นต่ำของค่าสีที่ผู้ใช้ต้องการ หากพื้นที่ของค่าสีที่เจอมีค่าน้อยกว่าจะไม่ถูกนำมาพิจารณา (pixel)

Return:

  • image => ภาพการตรวจจับค่าสี

  • boxes(list) => พิกัดตำแหน่งของค่าสีที่ได้จากการวาดกรอบตรวจจับ ประกอบด้วย จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างของกรอบตรวจจับ ตามลำดับ

Example:

color = VamCV.color()

Red = (255,0,0)

img,points = color.color_detection(img, Red, range_HSV=40)

print(points)

cv2.imshow("Image",img)
cv2.waitKey(0) 

ขั้นตอนการเรียกใช้งานใน vam_color.py

  • import package

  • สร้างตัวแปรเรียกใช้ class color

  • รับภาพ

  • เรียกใช้ฟังก์ชันในการหาค่าสีและตรวจจับสี

  • save and run "python vam_color.py" on terminal

Code

import cv2
import imutils
from industry_machine_vision import VamCV


color = VamCV.Color()

image = cv2.imread("path/your/image.jpg")
image = imutils.resize(image,width=500)

img,num = color.visualize_colors(image,7)
cv2.imshow("color",img)

detect,p = color.color_detection(image,num[0],40)
cv2.imshow("detect",detect)
cv2.waitKey(0)

Measurement Object

ประกอบไปด้วน 2 ฟังก์ชันการทำงาน

1. optimize_image

ใช้ในการปรับปรุงภาพอย่างง่าย เพื่อใช้ในการหาจุดคู่อันดับ 4 จุดของกรอบตรวจจับวัตถุหรือชิ้นส่วน (จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างตามลำดับ)

$ optimize_image(image, lower_threshold, upper_threshold, area=None)

Parameters:

  • image => ภาพสี RGB ที่ผู้ใช้ต้องการ

  • lower_threshold (integer) => ขีดจำกัดต่ำสุดสำหรับกระบวนการลบภาพพื้นหลัง มีค่าตั้งแต่ 0-255

  • upper_threshold (integer) => ขีดจำกัดสูงสุดสำหรับกระบวนการลบภาพพื้นหลัง มีค่าตั้งแต่ 0-255

  • area (integer or None) => พื้นที่ขั้นต่ำของค่าสีที่ผู้ใช้ต้องการ หากพื้นที่ของค่าสีที่เจอมีค่าน้อยกว่าจะไม่ถูกนำมาพิจารณา (pixel)

Return:

  • boxes[list(float)]: จุดคู่อันดับ 4 จุด(จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างตามลำดับ)

Example:

mr = VamCV.MeasurementObject()

points = optimize_image(image, 80, 100)
print(points)

2. measuring

ใช้ในการวัดความสูงของวัตถุหรือชิ้นส่วน โดยจะทำการรับค่าจุดคู่อันดับทั้ง 4 จุดของกรอบตรวจจับวัตถุ(จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างตามลำดับ) ขนาดความกว้างจริงของวัตถุหรือชิ้นส่วนพร้อมหน่วยวัดที่ต้องการ

$ measuring(image, boxes, real_width, unit)

Parameters:

  • image – ภาพสี RGB ที่ผู้ใช้ต้องการ

  • boxes (list) – จุดคู่อันดับทั้ง 4 จุดของกรอบตรวจจับวัตถุ(จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างตามลำดับ)

  • real_width (integer) – ขนาดความกว้างจริงของวัตถุ

  • unit (string) – มาตรวัดขนาดความกว้างจริงของวัตถุ

Return:

  • scale(list): ความกว้าง ความสูงและจุดคู่อันดับของวัตถุที่วัดได้(จุดคู่อันดับด้านซ้ายบน, จุดคู่อันดับด้านขวาบน, จุดคู่อันดับด้านล่างขวาและจุดคู่อันดับด้านซ้ายล่างตามลำดับ)

Example:

mr = VamCV.MeasurementObject()

measuring = mr.measuring(image,points,2,'cm')
print(measuring)

ขั้นตอนการเรียกใช้งาน vam_measuring.py

  • import package

  • สร้างตัวแปรเรียกใช้ class color

  • รับภาพ

  • เรียกใช้ฟังก์ชันในการหาจุดพิกัดวัตถุและตรวจวัดขนาด

  • save and run "python vam_measuring.py" on terminal

Code

import cv2
import imutils
from industry_machine_vision import VamCV

mr = VamCV.MeasurementObject()

image = cv2.imread("path/your/image.jpg")
image = imutils.resize(image,width=500)

points = mr.optimize_image(image,180,255)
print(points)

measuring = mr.measuring(image,points,2,'cm')
print(measuring)

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University