跳到主要内容

二值化处理图片对象 (: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%
})