跳到主要内容

二值化处理图片对象 (:binaryzation)

声明​

图片 = 图片:binaryzation({
[white_background = 白背景,]
[csim_mode = 相似度模式,]
[csim_algorithm = 颜色相似度算法,]
{颜色*, 色偏*},
{颜色*, 色偏*},
...
})
图片 = 图片:binaryzation("cx*-cox*,cx*-cox*...")

参数​

  • 白背景 20250302 布尔型,可选参数,是否将背景设置为白色,默认 false,即白前景黑背景
  • 相似度模式 20250302 布尔型,可选参数,是否使用相似度模式,相似度模式下,色偏* 为相似度,而不是色差值,默认 false
  • 颜色相似度算法 20250302 整数型,可选参数,颜色相似度算法,只在相似度模式下生效,默认 0
颜色相似度算法
0 为 NBT 默认算法,梯度陡峭,差值使相似度下降很快
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%
})