Metadata-Version: 2.1
Name: snowycv
Version: 5.2.0
Summary: Light industrial vision toolkit with GUI debug | Preprocess/Blob/HSV/TemplateMatch/ONNX DNN
Author: YourName
Author-email: xxx@xxx.com
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: opencv-python>=4.5.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: onnxruntime>=1.12.0

# README.md
## EasyCV V5.2.0｜自用工业图像处理Python工具箱
> 一款面向机器视觉调试、算法快速验证的轻量级开源图像处理库，集成**基础图像预处理、传统机器视觉、Blob分析、HSV颜色筛选、ONNX深度学习推理**，配套可视化滑动调参GUI，拖动滑块实时预览效果，一键导出固化参数代码，对标简易Halcon/VisionPro调试工具。

### 📁 项目目录结构
```
easycv-main/
├── setup.py             # 库打包&安装配置文件
├── README.md            # 项目说明文档
└── easycv/              # 源代码包
    ├── __init__.py      # 模块导出、版本定义
    ├── core.py          # 底层所有图像处理算法函数
    └── gui.py          # 可视化GUI调试面板、滑动条、快捷键逻辑
```

## 📦 一、安装教程
### 1. 本地源码安装
1. 下载整个`easycv-main`项目文件夹
2. CMD/终端进入项目根目录`easycv-main`
3. 执行安装命令：
```bash
pip install .
```
> 自动安装依赖：`opencv-python、numpy、onnxruntime`

### 2. 版本升级
修改源码后，项目目录执行升级：
```bash
pip install . --upgrade
```

## ⚡ 二、快速开始
### 方式1：启动可视化GUI调试工具（推荐调试使用）
```python
import easycv
# 弹出文件选择框，加载图片，打开全功能调试窗口
easycv.start_tool()
```

### 方式2：代码直接调用底层API（工程落地使用）
```python
import cv2
import easycv

# 读取原图
img = cv2.imread("test.jpg")

# 1.基础预处理
img = easycv.denoise(img, sigma=3)          #高斯降噪
img = easycv.rgb_denoise(img, r=2,g=1,b=2)  #RGB分通道降噪
img = easycv.brightness_contrast(img,bright=15,contrast=20) #亮度对比度

# 2.HSV颜色筛选，提取绿色区域
mask = easycv.hsv_filter(img,35,75,40,255,30,255)
img_color = easycv.apply_mask(img,mask)

# 3.Blob颗粒计数
gray = easycv.to_gray(img_color)
bin_img = easycv.threshold(gray,110)
blob_list = easycv.blob_analysis(bin_img,min_area=10,max_area=5000)
result = easycv.draw_blob_result(img_color,blob_list)

cv2.imshow("result",result)
cv2.waitKey(0)
```

## 🎛️ 三、GUI可视化快捷键说明
运行`easycv.start_tool()`打开窗口后：
|快捷键|功能说明|
| ---- | ---- |
|`S`|保存处理后图片到本地`final.png`，控制台自动输出整套可直接运行的参数代码|
|`Q`|关闭调试窗口，退出程序|
|`M`|加载**模板图片**，开启模板匹配定位，绿色框标记匹配目标|
|`R`|加载**良品标准图**，差分缺陷检测，红色框圈出产品缺陷区域|
|`B`|开启/关闭Blob斑点分析，蓝色框标记颗粒，标注单点像素面积+总数量|
|`H`|开启/关闭HSV颜色筛选，保留指定色相区间目标|
|`D`|首次：加载ONNX模型；再次点击：开启/关闭AI深度学习目标检测（黄色框标注）|

### 滑动条分组说明
1. **基础预处理组**：Gray(灰度开关)、Blur(全局高斯)、R/G/B(单通道高斯)、Median(中值滤波)、Bright/Contrast(亮度对比度)、Sharpen(锐化)
2. **二值形态学组**：Threshold(二值阈值)、Erode(腐蚀)、Dilate(膨胀)
3. **传统视觉组**：MatchThr(模板匹配置信)、DiffThr(缺陷差分阈值)、PixPerMM(像素转毫米比例)
4. **Blob参数组**：MinArea/MaxArea（斑点最小/最大面积过滤）
5. **HSV颜色组**：HMin/HMax、SMin/SMax、VMin/VMax（色相、饱和度、亮度区间）
6. **DNN深度学习**：DNNConf(AI检测置信阈值)

## 🧩 四、模块功能全览
### 1. 基础图像处理（core.py）
|函数|作用|
|----|----|
|`to_gray(img)`|BGR彩色图转灰度图|
|`denoise(img,sigma)`|全局高斯模糊降噪|
|`rgb_denoise(img,r,g,b)`|RGB三通道独立高斯滤波|
|`median_denoise(img,ksize)`|中值滤波，去除椒盐噪点|
|`brightness_contrast(img,bri,con)`|亮度、对比度调整|
|`sharpen(img,strength)`|图像边缘锐化增强|
|`threshold(img,thr)`|灰度图固定阈值二值化|
|`erode(img,ksize)`|腐蚀运算，消除细小噪点|
|`dilate(img,ksize)`|膨胀运算，填补孔洞|

### 2. 传统机器视觉算法
1. **模板匹配定位** `template_match(src,temp,match_thr)`
    输入原图+模板，返回全部匹配框坐标`[x,y,w,h]`，对标Halcon模板匹配。
2. **尺寸换算** `calc_length(p1,p2,pixel_per_mm)`
    两点像素距离 → 实际物理毫米尺寸。
3. **差分缺陷检测** `defect_detect(src,std,diff_thr)`
    良品图与待测图做差分，自动框选色差缺陷。

### 3. Blob斑点分析
1. `blob_analysis(bin_img,min_area,max_area)`：二值图斑点轮廓提取，按面积筛选，返回每个斑点坐标、宽高、像素面积。
2. `draw_blob_result(src,blob_list)`：原图绘制Blob框+面积文字+总数量。
> 适用：物料颗粒计数、焊点检测、异物统计。

### 4. HSV颜色空间分割
1. `hsv_filter(img,hmin,hmax,smin,smax,vmin,vmax)`：生成指定颜色掩码。
2. `apply_mask(src,mask)`：按掩码抠取彩色目标。
> 适用：彩色胶点分选、红绿零件筛选、颜料污点提取。

### 5. ONNX轻量化深度学习推理
```python
# 初始化模型
model = easycv.DnnOnnxInfer("yolov5.onnx", conf_thresh=0.6)
# 推理预测
boxes = model.infer(img)
# 绘制检测框
out = easycv.draw_dnn_box(img,boxes)
```
> 支持YOLO系列导出的ONNX模型，CPU端轻量化推理，无需安装Pytorch/Tensorflow。

## 📌 五、落地使用流程
1. 使用GUI加载原图，拖动各个滑动条调试最优参数；
2. 按`S`一键导出带固定参数的Python代码；
3. 复制生成代码到正式项目，脱离GUI直接批量处理图片。

## ✅ 六、依赖清单
```
opencv-python >=4.5
numpy >=1.20
onnxruntime >=1.12
```

## 📝 七、后续迭代计划
1. 新增Canny边缘检测、霍夫圆/直线检测
2. Pyinstaller一键打包独立EXE程序
3. ROI自定义框选功能
4. 批量文件夹图片处理接口

## 📄 License
MIT开源协议，个人学习、商用二次开发均可自由使用。
