边缘检测
from ascript.android.screen.gp_tasks import Canny
通过梯度检测图片中的边缘,通过x,y,宽,高限制得到特征区域
方法
Canny(low_threshold: int = 50, high_threshold: int = 150, mode: int = RETR_EXTERNAL,
draw: int = DRAW_ALL, desc: bool = False,
left_range: list = None, top_range: list = None,
width_range: list = None, height_range: list = None)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
low_threshold | int | 否 | 最小梯度差 |
high_threshold | int | 否 | 最大梯度差 |
mode | int | 否 | 检测模式,默认所有轮廓 |
draw | int | 否 | 绘制模式 Canny.DRAW_NONE:在图片上不进行绘制 Canny.DRAW_ALL:在图片上绘制所有轮廓 Canny.DRAW_RECT:在图片上绘制轮廓矩形范围 Canny.DRAW_RECT_FILL: 在图片上绘制轮廓矩形,并将内部填白 |
desc | bool | 否 | 是否在图片上绘制轮廓信息,如轮廓坐标,长度 |
left_range | list | 否 | 坐标x过滤,[minx,maxx] 如:[100,200] 保留所有轮廓坐标x 在100-200 之间轮廓 |
top_range | list | 否 | 坐标y过滤,[minx,maxx] 如:[100,200] 保留所有轮廓坐标y 在100-200 之间轮廓 |
width_range | list | 否 | 宽度过滤,[minx,maxx] 如:[100,200] 保留所有轮廓宽度 在100-200 之间轮廓 |
height_range | list | 否 | 高度过滤,[minx,maxx] 如:[100,200] 保留所有轮廓高度 在100-200 之间轮廓 |
- 示例
# 检测所有轮廓,并绘制矩形范围
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import GaussianBlur
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Canny(draw=Canny.DRAW_RECT))
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
#打印所有轮廓信息
print(res.data)
# 检测所有轮廓,绘制矩形范围,并保留轮廓宽度在100-500之间的所有
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import GaussianBlur
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Canny(draw=Canny.DRAW_RECT,width_range=[100,500]))
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
#打印所有轮廓信息
print(res.data)