Skip to main content

边缘检测

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_thresholdint最小梯度差
high_thresholdint最大梯度差
modeint检测模式,默认所有轮廓
drawint绘制模式
Canny.DRAW_NONE:在图片上不进行绘制
Canny.DRAW_ALL:在图片上绘制所有轮廓
Canny.DRAW_RECT:在图片上绘制轮廓矩形范围
Canny.DRAW_RECT_FILL:在图片上绘制轮廓矩形,并将内部填白
descbool是否在图片上绘制轮廓信息,如轮廓坐标,长度
left_rangelist坐标x过滤,[minx,maxx]
如:[100,200] 保留所有轮廓坐标x 在100-200 之间轮廓
top_rangelist坐标y过滤,[minx,maxx]
如:[100,200] 保留所有轮廓坐标y 在100-200 之间轮廓
width_rangelist宽度过滤,[minx,maxx]
如:[100,200] 保留所有轮廓宽度 在100-200 之间轮廓
height_rangelist高度过滤,[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)