画像オブジェクトを二値化 (: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%
})