Skip to main content

图像预处理

对图像/屏幕图像 进行预处理

预处理: 在识别图片,或检测图片之前 先对图片进行一些处理,让图像特征更明确.

裁剪

获取区域范围截图

from ascript.android.screen.gp_tasks import Crop
Crop(left: int, top: int, right: int, bottom: int)
  • 参数
参数类型是否必填说明
leftint范围左上角顶点x
topint范围左上角顶点y
rightint范围右下角顶点x
bottomint范围右下角顶点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)
  • 参数
参数类型是否必填说明
thresholdint阈值,超过阈值的至为黑色,小于阈值的至为白色, 黑白可反转
invbool是否黑白反转,默认不反转.
  • 示例
# 将当前屏幕二值化,阈值为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_sizeint腐蚀内核大小,默认为5*5
iterationsint腐蚀次数,默认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_sizeint内核大小,默认为5*5
iterationsint膨胀次数,默认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_sizeint内核大小,默认为5*5
iterationsint执行次数,默认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_sizeint内核大小,默认为5*5
iterationsint执行次数,默认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)
  • 参数
参数类型是否必填说明
ksizeint内核大小,默认为5*5
sigmaXint高斯模糊差
  • 示例
#  将当前图像进行高斯模糊
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)