Skip to content

Commit

Permalink
Merge branch 'dev' of https://github.com/shelllet/winui into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
shelllet committed Oct 14, 2023
2 parents bd6c5ff + ccf445a commit a134e85
Show file tree
Hide file tree
Showing 15 changed files with 66 additions and 28 deletions.
10 changes: 5 additions & 5 deletions docx/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# [0.29](https://github.com/shelllet/winui/compare/main...dev) (2023-xx-xx)
### Changed:
1. 优化图像检测相关动作。
2. *鼠标监听* 支持监听鼠标按下。
3. 模板匹配,只能返回第一个匹配到的位置
4. 增加 *颜色填充* 动作。
5. 增加 *形状查找* 动作,可以查找 *长方形**正方形**三角形*

1. *鼠标监听* 支持监听鼠标按下。
2. 图像查找(特征匹配)返回匹配的多个图像
3. 增加 *颜色填充* 动作。
4. 增加 *形状查找* 动作,可以查找 *长方形**正方形**三角形*

## [0.28](https://github.com/shelllet/winui/compare/main...dev) (2023-09-23)
### Changed:
Expand Down
4 changes: 3 additions & 1 deletion docx/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
- [异步启动](./actions/async/WorkBegin.md)
- [状态切换](./actions/async/WorkReset.md)
- [等待事件](./actions/async/WhenEvent.md)
- [异步等待](./actions/async/WorkWait.md)
- 文件
- [读取文件](./actions/filesystem/FileRead.md)
- [文件写入](./actions/filesystem/FileWrite.md)
Expand Down Expand Up @@ -90,7 +91,7 @@
- 图像检测
- [直线检测](./actions/detection/LineDetection.md)
- [椭圆检测](./actions/detection/EllipseDetection.md)
- [斑点查找](./actions/detection/BlobDetect.md)
- [斑点检测](./actions/detection/BlobDetect.md)
- [形状查找](./actions/detection/ShapeDetection.md)
- [形状匹配](./actions/detection/MatchShapes.md)
- [特征匹配](./actions/detection/FeatureDetect.md)
Expand Down Expand Up @@ -276,4 +277,5 @@
- [MouseMessage](./enums/MouseMessage.md)
- [MorphologicalOperations](./enums/MorphologicalOperations.md)
- [ContourApproximationModes](./enums/ContourApproximationModes.md)
- [FeatureAlgorithm](./enums/FeatureAlgorithm.md)
- [Changelog](./CHANGELOG.md)
7 changes: 5 additions & 2 deletions docx/actions/detection/BlobDetect.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# 斑点检测
*斑点* 是图像中与周围区域在属性(例如亮度、颜色)上不同的区域, 也可以称为 *Blob* ,该动作对图像中的 *斑点* ,按照指定的条件进行筛选过滤。

* 查找圆或者椭圆就是从黑色背景中查找白色圆或者椭圆边缘。所以请记住,要找到的圆或者椭圆应该是白色的,背景应该是黑色的。


![BlobDetect](./images/03.png ':size=90%')

## 子流程
Expand All @@ -10,7 +13,7 @@
## 运行参数

* 图像
> 单通道图像,如果为非单通道图像,则会转换成灰度图像
> 源图像
* 阈值
> 通过使用从最小阈值开始对源图像进行阈值处理,将源图像转换为多个二值图像。这些阈值按 *步长* 递增, 直到最大阈值。
* 步长
Expand All @@ -28,7 +31,7 @@

## 输出

> 检测到 *斑点* 的矩形框,参考: [RotatedRect](./types/RotatedRect.md)
> 检测到 *斑点* 的矩形框,参考: [RotatedRects](./types/RotatedRect.md)

## 脚本调用
Expand Down
6 changes: 5 additions & 1 deletion docx/actions/detection/EllipseDetection.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 椭圆检测
检测图像中的圆或者椭圆。
检测图像中的圆或者椭圆,线宽通常是 *1*像素。

* 为了获得更高的准确性,请使用二值图像。因此,在查找圆或者椭圆之前,请应用阈值或边缘检测进行预处理。
* 查找圆或者椭圆就是从黑色背景中查找白色圆或者椭圆边缘。所以请记住,要找到的圆或者椭圆应该是白色的,背景应该是黑色的。


![EllipseDetection](./images/02.png ':size=90%')

Expand Down
19 changes: 11 additions & 8 deletions docx/actions/detection/FeatureDetect.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 特征匹配
该动作通过特征匹配,在一张图像当中查找模板图像。
特征是图像中信息特别丰富或有趣的独特区域。这些可能包括边缘、角落或斑点(基于颜色强度的区域)。该动作通过特征匹配,在一张图像当中查找模板图像。

![FeatureDetect](./images/06.png ':size=90%')

Expand All @@ -13,16 +13,16 @@


* 图像

> 单通道图像,如果为非单通道图像,则会转换成灰度图像。
* 模板
> 要查找的图像
* 精度
> 根据该精度进行特征过滤,低于该值的认为最佳匹配, 匹配越好,该值越小。默认值:0.75

> 要查找的图像,单通道图像,如果为非单通道图像,则会转换成灰度图像。
* 特征
> 获取的最大特征航空数量。仅适用于 *ORB**SIFT* 算法,默认值:500
* 算法
> 参考 [FeatureAlgorithm](../enums/FeatureAlgorithm.md)
## 输出

> 检测到的位置区域,参考:[RotatedRect](../types/RotatedRect.md)
> 检测到的位置区域,参考:[RotatedRects](../types/RotatedRect.md)

## 脚本调用
Expand All @@ -35,3 +35,6 @@ import simple;
## 资源

例子:https://github.com/shelllet/WinUi/blob/main/detection/FeatureDetect.simple


!> 该动作会先将源图像和模板图像转换成灰度图像,再进行匹配。
2 changes: 1 addition & 1 deletion docx/actions/detection/FindContours.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 查找轮廓
轮廓可以简单地理解为连接所有连续点(沿着边界)的曲线,具有相同的颜色或强度。轮廓是形状分析以及物体检测和识别的有用工具。

* 为了获得更高的准确性,请使用二值图像。因此,在查找轮廓之前,请应用阈值或精明的边缘检测
* 为了获得更高的准确性,请使用二值图像。因此,在查找轮廓之前,请应用阈值或边缘检测进行预处理
* 查找轮廓就像从黑色背景中查找白色物体。所以请记住,要找到的对象应该是白色的,背景应该是黑色的。

![FindContours](./images/08.png ':size=90%')
Expand Down
6 changes: 5 additions & 1 deletion docx/actions/detection/LineDetection.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 直线检测
检测图像中的直线。
检测图像中的直线,直线的线宽通常是 *1* 像素。

* 为了获得更高的准确性,请使用二值图像。因此,在查找直线之前,请应用阈值或边缘检测进行预处理。
* 查找直线就是从黑色背景中查找白色直线。所以请记住,要找到的直线应该是白色的,背景应该是黑色的。


![LineDetection](./images/01.png ':size=90%')

Expand Down
8 changes: 4 additions & 4 deletions docx/actions/detection/MatchShapes.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 形状匹配
该动作可以在一张图像上查找一个特定的形状。即使图像旋转,绽放也不会对该结果产生太大影响。

* 为了获得更高的准确性,请使用二值图像
* 要找到的对象应该是白色的,背景应该是黑色的。
* 为了获得更高的准确性,请使用二值图像,因此,在查找形状之前,请应用阈值或边缘检测进行预处理。
* 要找到的形状应该是白色的,背景应该是黑色的。

![MatchShapes](./images/05.png ':size=90%')

Expand All @@ -12,7 +12,7 @@

## 运行参数

* 源图像
* 图像
> 单通道图像,通常是二值化后的图像,从该图像上查找相应的目标形状。如果非单通道图像,则默认转换为灰度图像。
* 目标
> 单通道图像,包含目标形状,通常是一张具有特定形状,二值化化后的图像。如果非单通道图像,则默认转换为灰度图像。
Expand All @@ -24,7 +24,7 @@
> 根据相似性进行过滤。越低,表示匹配越好。*0*:表示完全匹配,低于该值的形状,会被认为是匹配的形状。
## 输出

> 所有匹配到的形状的位置,可以参考[DetectionResult](./types/DetectionResult.md)
> 所有匹配到的形状的位置,可以参考[DetectionResults](./types/DetectionResult.md)

## 脚本调用
Expand Down
6 changes: 3 additions & 3 deletions docx/actions/detection/MatchTemplate.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@
## 运行参数

* 图像
> 源图像,待查找图像,可以是彩色图像。
* 模板
> 要查找的图像
> 要查找的图像,可以是彩色图像,不能比源图像大。
* 精度
> 根据相似度进行过滤, 低于该值的认为不匹配。 匹配越好,该值越大。**1** 表示完美匹配。
## 输出

> 匹配到的位置,参考:[DetectionResult](./types/DetectionResult.md)
> 匹配到的位置,参考:[DetectionResults](./types/DetectionResult.md)


## 脚本调用

```python
Expand Down
4 changes: 3 additions & 1 deletion docx/actions/detection/ShapeDetection.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 形状查找
该动作可以查找图像上的基本形状,如:三角形、四边形、正方形。

* 为了获得更高的准确性,请使用二值图像。因此,在查找形状之前,请应用阈值或精明的边缘检测
* 为了获得更高的准确性,请使用二值图像。因此,在查找形状之前,请应用阈值或边缘检测进行预处理
* 查找形状就像从黑色背景中查找白色物体。所以请记住,要找到的形状应该是白色的,背景应该是黑色的。

![ShapeDetection](./images/04.png ':size=90%')
Expand All @@ -18,6 +18,8 @@
* 逼近
> 指定近似精度的参数。这是原始形状与其近似形状之间的最大距离。
* 形状
> 要查找的形状。
## 输出

Expand Down
Binary file modified docx/actions/detection/images/06.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docx/actions/detection/images/07.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions docx/enums/FeatureAlgorithm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# FeatureAlgorithm

* SIFT
> 用于检测和描述图像中的局部特征。它对图像缩放、方向和仿射失真具有鲁棒性。在不同尺度的图像中 *SIFT* 都比 *SURF* 要好。
* SURF
> *SURF* 在旋转不变性、模糊和扭曲变换方面优于 *SIFT*
* BRISK
> *SURF* 快的一种检测方法。
* ORB
> 计算速度快,并且对光照和旋转变化具有鲁棒性,*ORB**SURF**SIFT* 快得多,而且性能也比 *SURF* 更好。
* AKAZE
> 在过滤匹配项并删除异常值之后,与 *ORB* 相比,*AKAZE* 呈现出更多数量的正确匹配项。计算速度比 *ORB* 慢。
6 changes: 5 additions & 1 deletion docx/types/DetectionResult.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ Class `DetectionResult` 对象检测结果

2. rc :[RotatedRect](../types/RotatedRect.md)

位置框
位置框

# DetectionResult

Class `DetectionResults`
4 changes: 4 additions & 0 deletions docx/types/RotatedRect.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@ class `RotatedRect`, 表示一个带角度的旋转矩形。
1. center :[Point](../types/Point.md)

中心坐标

# RotatedRect

class `RotatedRects`

0 comments on commit a134e85

Please sign in to comment.