二值化处理图片对象 (:binaryzation)
声明
图片 = 图片:binaryzation({
[white_background = 白背景,]
[csim_mode = 相似度模式,]
[csim_algorithm = 颜色相似度算法,]
{颜色*, 色偏*},
{颜色*, 色偏*},
...
})
图片 = 图片:binaryzation("cx*-cox*,cx*-cox*...")
参数
-
白背景 20250302
布尔型,可选参数,是否将背景设置为白色,默认 false,即白前景黑背景 -
相似度模式 20250302
布尔型,可选参数,是否使用相似度模式,相似度模式下,色偏* 为相似度,而不是色差值,默认 false -
颜色相似度算法 20250302
整数型,可选参数,颜色相似度算法,只在相似度模式下生效,默认 0颜色相似度算法
0 为 XXT 默认算法,梯度陡峭,差值使相似度下降很快
1 为曼哈顿算法,梯度平滑
2 为欧几里得算法,梯度平滑 -
颜色*, 色偏*
整数型,颜色值白名单,颜色* 是颜色值本身,色偏* 是 颜色* 的最大色差值 -
cx*-cox*
文本型,颜色值白名单,cx* 是颜色值本身的16进制文本描述,cox* 是 cx* 的最大色差值16进制文本描述
返回值
- 图片
图片对象,二值化后返回图片对象本体
说明
二值化处理图片对象
会对对象本身产生影响
性能上,该函数操作过程不产生数据拷贝
示例
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation({
{0x9D5D39, 0x0F1F26},
{0xD3D3D2, 0x2C2C2D},
})
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation("9D5D39-0F1F26,D3D3D2-2C2C2D")
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation({
csim_mode = true, -- 使用相似度模式
csim_algorithm = 2, -- 使用欧几里得算法
white_background = true, -- 将背景设置为白色
{0x9D5D39, 90}, -- 颜色 0x9D5D39 的相似度为 90%
{0xD3D3D2, 90}, -- 颜色 0xD3D3D2 的相似度为 90%
})