图像预处理
对图像/屏幕图像 进行预处理
预处理: 在识别图片,或检测图片之前 先对图片进行一些处理,让图像特征更明确.
裁剪
获取区域范围截图
from ascript.android.screen.gp_tasks import Crop
Crop(left: int, top: int, right: int, bottom: int)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
left | int | 是 | 范围左上角顶点x |
top | int | 是 | 范围左上角顶点y |
right | int | 是 | 范围右下角顶点x |
bottom | int | 是 | 范围右下角顶点y |
- 示例
#截取 当前屏幕的[100,100,500,500]的范围
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Crop
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Crop(100,100,500,500))
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
灰度图
RGB通道转换为单通道灰白图像
- 灰度图: 只有灰白颜色的图片.
from ascript.android.screen.gp_tasks import GrayImage
GrayImage()
-
参数 无
-
示例
# 将当前屏幕转换为灰度图
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Crop
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(GrayImage())
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
二值化
又称阈值处理,先灰度图,将超过阈值图像区域填黑,其余填白(可反转黑白)
from ascript.android.screen.gp_tasks import Threshold
Threshold(threshold: int, inv: bool = False)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
threshold | int | 是 | 阈值,超过阈值的至为黑色,小于阈值的至为白色, 黑白可反转 |
inv | bool | 否 | 是否黑白反转,默认不反转. |
- 示例
# 将当前屏幕二值化,阈值为150
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Threshold
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Threshold(150))
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
# 将当前屏幕二值化,并黑白反转,阈值为150
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Threshold
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Threshold(150,True))
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
腐蚀
消除图像中的边界或小细节,从而使物体在图像 中显得更加清晰
from ascript.android.screen.gp_tasks import Erode
Erode(kernel_size: int = 5, iterations: int = 1)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
kernel_size | int | 否 | 腐蚀内核大小,默认为5*5 |
iterations | int | 否 | 腐蚀次数,默认1 |
- 示例
# 将当前图像进行腐蚀
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Erode
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Erode())
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
# 将当前图像进行腐蚀,内核大小设置为9*9,次数为2
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Erode
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Erode(9,2))
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
膨胀
消除黑色噪点,填补小的孔洞或断裂的区域,强调或扩展图像中的高亮区域
from ascript.android.screen.gp_tasks import Dilate
Dilate(kernel_size: int = 5, iterations: int = 1)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
kernel_size | int | 否 | 内核大小,默认为5*5 |
iterations | int | 否 | 膨胀次数,默认1 |
- 示例
# 将当前图像进行膨胀
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Dilate
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Dilate())
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
# 将当前图像进行膨胀,内核大小设置为11,次数设置为2
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import Dilate
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(Dilate(11,2))
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
开运算
腐蚀+膨胀,去除图像中的小细节、噪声或边缘
from ascript.android.screen.gp_tasks import MorphOpen
MorphOpen(kernel_size: int = 5, iterations: int = 1)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
kernel_size | int | 否 | 内核大小,默认为5*5 |
iterations | int | 否 | 执行次数,默认1 |
- 示例
# 将当前图像进行开运算
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import MorphOpen
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(MorphOpen())
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
# 将当前图像进行开运算,内核大小设置为11,次数设置为2
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import MorphOpen
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(MorphOpen(11,2))
# gp.add(....) 还可以增加更多的处理
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
闭运算
膨胀+腐蚀,填充物体内部的空洞,连接断开的物体,以及平滑物体的边缘
from ascript.android.screen.gp_tasks import MorphClose
MorphClose(kernel_size: int = 5, iterations: int = 1)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
kernel_size | int | 否 | 内核大小,默认为5*5 |
iterations | int | 否 | 执行次数,默认1 |
- 示例
# 将当前图像进行闭运算
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import MorphClose
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(MorphClose())
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
# 将当前图像进行闭运算,内核大小设置为11,次数设置为2
from ascript.android.screen.gp import GPStack
from ascript.android.screen.gp_tasks import MorphClose
from ascript.android.ui import ImageWindow
gp = GPStack()
gp.add(MorphClose(11,2))
# gp.add(....) 还可以增加更多的处理
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)
高斯模糊
去除图像噪声,降低细节层次,平滑处理,边缘增强,图像融合,纹理削弱 等功能
from ascript.android.screen.gp_tasks import GaussianBlur
GaussianBlur(ksize: int = 5, sigmaX: int = 0)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
ksize | int | 否 | 内核大小,默认为5*5 |
sigmaX | int | 否 | 高斯模糊差 |
- 示例
# 将当前图像进行高斯模糊
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(GaussianBlur())
# gp.add(....) 还可以增加更多的插件
res = gp.run()
# 展示处理后的图像
ImageWindow.show(res.image)