My own computer vision library
Project description
README.md
snowyCV V1.0.0|自用工业图像处理Python工具箱
一款面向机器视觉调试、算法快速验证的轻量级开源图像处理库,集成基础图像预处理、传统机器视觉、Blob分析、HSV颜色筛选、ONNX深度学习推理,配套可视化滑动调参GUI,拖动滑块实时预览效果,一键导出固化参数代码,对标简易Halcon/VisionPro调试工具。
📁 项目目录结构
snowycv-main/
├── setup.py # 库打包&安装配置文件
├── README.md # 项目说明文档
└── snowycv/ # 源代码包
├── __init__.py # 模块导出、版本定义
├── core.py # 底层所有图像处理算法函数
└── gui.py # 可视化GUI调试面板、滑动条、快捷键逻辑
📦 一、安装教程
1. 本地源码安装
- 下载整个
snowycv-main项目文件夹 - CMD/终端进入项目根目录
snowycv-main - 执行安装命令:
pip install .
自动安装依赖:
opencv-python、numpy、onnxruntime
2. 版本升级
修改源码后,项目目录执行升级:
pip install . --upgrade
⚡ 二、快速开始
方式1:启动可视化GUI调试工具(推荐调试使用)
import snowycv
# 弹出文件选择框,加载图片,打开全功能调试窗口
snowycv.start_tool()
方式2:代码直接调用底层API(工程落地使用)
import cv2
import snowycv
# 读取原图
img = cv2.imread("test.jpg")
# 1.基础预处理
img = snowycv.denoise(img, sigma=3) #高斯降噪
img = snowycv.rgb_denoise(img, r=2,g=1,b=2) #RGB分通道降噪
img = snowycv.brightness_contrast(img,bright=15,contrast=20) #亮度对比度
# 2.HSV颜色筛选,提取绿色区域
mask = snowycv.hsv_filter(img,35,75,40,255,30,255)
img_color = snowycv.apply_mask(img,mask)
# 3.Blob颗粒计数
gray = snowycv.to_gray(img_color)
bin_img = snowycv.threshold(gray,110)
blob_list = snowycv.blob_analysis(bin_img,min_area=10,max_area=5000)
result = snowycv.draw_blob_result(img_color,blob_list)
cv2.imshow("result",result)
cv2.waitKey(0)
🎛️ 三、GUI可视化快捷键说明
运行snowycv.start_tool()打开窗口后:
| 快捷键 | 功能说明 |
|---|---|
S |
保存处理后图片到本地final.png,控制台自动输出整套可直接运行的参数代码 |
Q |
关闭调试窗口,退出程序 |
M |
加载模板图片,开启模板匹配定位,绿色框标记匹配目标 |
R |
加载良品标准图,差分缺陷检测,红色框圈出产品缺陷区域 |
B |
开启/关闭Blob斑点分析,蓝色框标记颗粒,标注单点像素面积+总数量 |
H |
开启/关闭HSV颜色筛选,保留指定色相区间目标 |
D |
首次:加载ONNX模型;再次点击:开启/关闭AI深度学习目标检测(黄色框标注) |
滑动条分组说明
- 基础预处理组:Gray(灰度开关)、Blur(全局高斯)、R/G/B(单通道高斯)、Median(中值滤波)、Bright/Contrast(亮度对比度)、Sharpen(锐化)
- 二值形态学组:Threshold(二值阈值)、Erode(腐蚀)、Dilate(膨胀)
- 传统视觉组:MatchThr(模板匹配置信)、DiffThr(缺陷差分阈值)、PixPerMM(像素转毫米比例)
- Blob参数组:MinArea/MaxArea(斑点最小/最大面积过滤)
- HSV颜色组:HMin/HMax、SMin/SMax、VMin/VMax(色相、饱和度、亮度区间)
- 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. 传统机器视觉算法
- 模板匹配定位
template_match(src,temp,match_thr)输入原图+模板,返回全部匹配框坐标[x,y,w,h],对标Halcon模板匹配。 - 尺寸换算
calc_length(p1,p2,pixel_per_mm)两点像素距离 → 实际物理毫米尺寸。 - 差分缺陷检测
defect_detect(src,std,diff_thr)良品图与待测图做差分,自动框选色差缺陷。
3. Blob斑点分析
blob_analysis(bin_img,min_area,max_area):二值图斑点轮廓提取,按面积筛选,返回每个斑点坐标、宽高、像素面积。draw_blob_result(src,blob_list):原图绘制Blob框+面积文字+总数量。
适用:物料颗粒计数、焊点检测、异物统计。
4. HSV颜色空间分割
hsv_filter(img,hmin,hmax,smin,smax,vmin,vmax):生成指定颜色掩码。apply_mask(src,mask):按掩码抠取彩色目标。
适用:彩色胶点分选、红绿零件筛选、颜料污点提取。
5. ONNX轻量化深度学习推理
# 初始化模型
model = snowycv.DnnOnnxInfer("yolov5.onnx", conf_thresh=0.6)
# 推理预测
boxes = model.infer(img)
# 绘制检测框
out = snowycv.draw_dnn_box(img,boxes)
支持YOLO系列导出的ONNX模型,CPU端轻量化推理,无需安装Pytorch/Tensorflow。
📌 五、落地使用流程
- 使用GUI加载原图,拖动各个滑动条调试最优参数;
- 按
S一键导出带固定参数的Python代码; - 复制生成代码到正式项目,脱离GUI直接批量处理图片。
✅ 六、依赖清单
opencv-python >=4.5
numpy >=1.20
onnxruntime >=1.12
📝 七、后续迭代计划
- 新增Canny边缘检测、霍夫圆/直线检测
- Pyinstaller一键打包独立EXE程序
- ROI自定义框选功能
- 批量文件夹图片处理接口
📄 License
MIT开源协议,个人学习、商用二次开发均可自由使用。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snowycv-1.0.1.tar.gz.
File metadata
- Download URL: snowycv-1.0.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8899c023f826e1e20231241a5b1f741af0409c8630a3b99987b5a8c85aad9ad
|
|
| MD5 |
38648482b303d5d3fee6dba506136461
|
|
| BLAKE2b-256 |
e3bc5cb0ccae5cc3bcbb95928ea794fc3d9a5bc35f4a18b862fb820654bf7bf5
|
File details
Details for the file snowycv-1.0.1-py3-none-any.whl.
File metadata
- Download URL: snowycv-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4f4ca7d4678a8d805a4cd535e9397aa432968bdc6658ac2cce7afe9d43f6369
|
|
| MD5 |
f54f1757d053686142d4002afccd5fc2
|
|
| BLAKE2b-256 |
46b466d22a42688f4c33e5652f77d43d9479ede55e8abded554976bb92dab46d
|