画像処理等で、色数が減ったほうが処理が早くて助かるケースもあります。
今回は、そんなとき、どう色を落とすかについて。
実際のところ
ここに、255色ある画像があります
magick base.png -format "(%f) -> %g %C %k\n" info: (base.png) -> 800x1712+0+0 Zip 255
閾値を設定してcombineすれば色数がへります。
$ magick new.png -separate -threshold 40% -combine uiui1.png $ magick uiui1.png -format %c histogram:info: 1337444: (0,0,0) #000000 black 27973: (0,0,255) #0000FF blue 2160: (0,255,0) #00FF00 lime 1792: (0,255,255) #00FFFF cyan 231: (255,255,0) #FFFF00 yellow
閾値をあげれば色数が減り
$ magick new.png -separate -threshold 60% -combine uiui1.png $ magick uiui1.png -format %c histogram:info: 1368778: (0,0,0) #000000 black 671: (0,255,0) #00FF00 lime 151: (255,255,0) #FFFF00 yellow
下げれば色数が増える。
$ magick new.png -separate -threshold 20% -combine uiui1.png $ magick uiui1.png -format %c histogram:info: 1287847: (0,0,0) #000000 black 22064: (0,0,255) #0000FF blue 2969: (0,255,0) #00FF00 lime 10123: (0,255,255) #00FFFF cyan 269: (255,0,0) #FF0000 red 44985: (255,0,255) #FF00FF magenta 498: (255,255,0) #FFFF00 yellow 845: (255,255,255) #FFFFFF white
大雑把に色エリアを判定したいときに一気に手間がへります。