Skip to main content

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. 本地源码安装

  1. 下载整个snowycv-main项目文件夹
  2. CMD/终端进入项目根目录snowycv-main
  3. 执行安装命令:
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深度学习目标检测(黄色框标注)

滑动条分组说明

  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轻量化深度学习推理

# 初始化模型
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。

📌 五、落地使用流程

  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开源协议,个人学习、商用二次开发均可自由使用。

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

snowycv-1.0.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snowycv-1.0.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for snowycv-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c8899c023f826e1e20231241a5b1f741af0409c8630a3b99987b5a8c85aad9ad
MD5 38648482b303d5d3fee6dba506136461
BLAKE2b-256 e3bc5cb0ccae5cc3bcbb95928ea794fc3d9a5bc35f4a18b862fb820654bf7bf5

See more details on using hashes here.

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

Hashes for snowycv-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d4f4ca7d4678a8d805a4cd535e9397aa432968bdc6658ac2cce7afe9d43f6369
MD5 f54f1757d053686142d4002afccd5fc2
BLAKE2b-256 46b466d22a42688f4c33e5652f77d43d9479ede55e8abded554976bb92dab46d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page