Metadata-Version: 2.4
Name: ydl2
Version: 0.1.6
Summary: OpenCV 轻量扩展：Unicode 路径读写、HALCON 风格灰度缩放
Author-email: 无敌的杨 <ydl779762225@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/CiweiWenruo/ydl2
Keywords: opencv,cv2,image,halcon,scale_image
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.21
Requires-Dist: opencv-python>=4.6
Dynamic: license-file

# ydl2

`ydl2` 是对 OpenCV 的轻量补充：解决 **Windows 中文路径** 读写问题，提供与 **HALCON** 语义一致的灰度缩放算子，以及基于 HALCON 的**形状模板匹配**封装。

## 安装

```bash
pip install ydl2
```

## 快速使用

### Unicode 路径 & 灰度缩放

```python
import ydl2

# Unicode 路径读写（Windows 中文路径）
img = ydl2.imread(r"D:\图片\测试.png")
ydl2.imwrite(r"D:\图片\输出.png", img)

# HALCON 等价算子
stretched = ydl2.scale_image_max(img)
inverted  = ydl2.scale_image(img, -1.0, 255.0)
mapped    = ydl2.scale_image_range(img, 100, 200)
```

### 形状模板匹配

```python
import ydl2
import cv2

# 加载模板（只需一次）
model = ydl2.read_shape_model(r"model.yyds")

# 读图并创建图像句柄（首次）
mat = cv2.imread(r"image.jpg")
b, g, r = cv2.split(mat)
handle = ydl2.any_to_tiyoo(r, g, b)

# 匹配
results = ydl2.find_shape_model(handle, model)
for res in results:
    print(res['row'], res['col'], res['score'])

# 后续帧原地更新（零内存分配）
handle = ydl2.any_to_tiyoo(r, g, b, handle=handle)

# 释放
ydl2.clear_image(handle)
ydl2.clear_shape_model(model)
```

## API

| 函数 | 说明 |
|------|------|
| `imread` / `imwrite` / `imshow` | 支持中文路径的读写与显示 |
| `scale_image_max` | 每通道 min/max 拉伸到 0–255 |
| `scale_image` | `g' = g * Mult + Add` |
| `scale_image_range` | 区间线性映射 |
| `any_to_tiyoo` | numpy 数组 → Halcon 图像句柄（创建或原地更新） |
| `tiyoo_to_any` | Halcon 图像句柄 → numpy 数组 |
| `read_image` / `write_image` / `clear_image` | Halcon 图像文件读写与释放 |
| `read_shape_model` / `clear_shape_model` | 加载 / 释放 Halcon 模板文件 |
| `find_shape_model` | 形状模板匹配，返回 `[{'row', 'col', 'angle', 'score'}]` |

## 依赖

- Python >= 3.8
- numpy >= 1.21
- opencv-python >= 4.6

## 链接

- 仓库：<https://github.com/CiweiWenruo/ydl2>
