# VAM\_CV SDK

## Installation

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

{% file src="/files/-MHy2b3hcIPpYMuHlWXw" %}
industry mahine vision
{% endfile %}

{% file src="/files/-MHzOaZzI0gLnNtFdLee" %}
requirements.txt
{% endfile %}

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

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

```
$ cd opencv
```

3\. เปิด  Visual environment&#x20;

```
## 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&#x20;

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

**1.  visualize\_colors**

&#x20;    ใช้ในการค้นหาค่าสีภายในภาพด้วยการรับค่าจำนวนกลุ่มสีจากผู้ใช้มาใช้ในการแบ่งกลุ่มของข้อมูลสีภายในภาพ ซึ่งผลลัพธ์ที่ได้จะมี 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) 
```

![](/files/-MHzDuugxrFiUCCTR87w)

**2. color\_detection**&#x20;

&#x20;    ใช้ตรวจจับสีที่ผู้ใช้ต้องการได้เพียงสีเดียว โดยการรับค่าสี 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)
```

![](/files/-MHzEorgFoTH0MhQJEEk)

### Measurement Object

![](/files/-MIJ6o2Qj9MQr1d4MYLH)

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

**1. optimize\_image**

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

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

**Parameters:**

* image => ภาพสี RGB ที่ผู้ใช้ต้องการ&#x20;
* lower\_threshold (integer) => ขีดจำกัดต่ำสุดสำหรับกระบวนการลบภาพพื้นหลัง มีค่าตั้งแต่ 0-255&#x20;
* upper\_threshold (integer) => ขีดจำกัดสูงสุดสำหรับกระบวนการลบภาพพื้นหลัง มีค่าตั้งแต่ 0-255&#x20;
* area (integer or None) => พื้นที่ขั้นต่ำของค่าสีที่ผู้ใช้ต้องการ หากพื้นที่ของค่าสีที่เจอมีค่าน้อยกว่าจะไม่ถูกนำมาพิจารณา (pixel)

**Return:**

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

**Example:**

```
mr = VamCV.MeasurementObject()

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

![](/files/-MIJ6yYBCxxPorECEMa2)

**2. measuring**

&#x20;    ใช้ในการวัดความสูงของวัตถุหรือชิ้นส่วน โดยจะทำการรับค่าจุดคู่อันดับทั้ง 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)
```

![](/files/-MIJ7CeGsveCCG2AGCZr)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aic-eec.com/artificial-intelligence-ai/basic-image-processing/computer-vision-for-python/lab-4-vam_cv-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
