mieki256's diary



2022/06/21(火) [n年前の日記]

#1 [python] ディザリング関係のページを眺めてる

RGB画像に対して任意のパレットを使ってディザリングをかけつつ減色する方法についてどこかで解説されてないものかと、ググって関連ページを眺めているところ。

もしかして、色の差を求めないといかんのだろうか…。与えられたパレット値の中から、処理しようとしているドットの色に近い色を見つけ出して、みたいなことをしないといかんのではなかろうか。そのためには、この色とこの色の差はどのくらいなのかを数値化しないといけない。しかし、色の差とやらは一体どうやって求めればいいのか…。

ググってたら、色差を計算する方法があるようで。

_色差 - Wikipedia

こういう計算が必要になるのだろうか。でも、計算が大変そう。XYZとかLabとか一体それは何でしょうか? な状態。

その後もググってたら、Pythonで色を置き換える処理を試している方に遭遇。

_Pythonで、いくつかの指定した色に似た色になるように、画像のピクセルを置き換えたい

skimage (scikit-image) というモジュールを使うと、色差を計算してくれるっぽい。わざわざ自分で実装しなくても済みそうだな…。助かる…。

_scikit-image: Image processing in Python - scikit-image
_3.3. Scikit-image: 画像処理 - Scipy lecture notes

更にググってたら、自分がやってみたい処理について、そのものズバリで解説している記事に遭遇。

_Arbitrary-palette positional dithering algorithm

英文記事だから何が何だか分からんけど、ソースも掲載されているからなんとかなりそう。じっくり眺めてみないと…。

Photoshop上での処理は特許切れらしい。 :

上記の記事の中で、Adobe Photoshop が実装してたパターンディザ化の処理は特許が切れてるかも、みたいな記述があった。

Adobe Systems Incorporated is in possession of US Patent number 6606166, applied for on 1999-04-30, granted on 2003-08-12, but which expired on 2019-11-16. It describes an algorithm called pattern dithering invented by Thomas Knoll. For the sake of documentation, we will explain how that algorithm works as well.

Arbitrary-palette positional dithering algorithm より

パテントナンバー 6606166 は、1999/04/30に申請して2003/08/12に特許が取れた。でも 2019/11/16 に特許切れした。と書いてあるのかな。たぶん。ちょっと気になる。

ただ、遥か大昔にグラフィッカーさん達が、「Photoshopの減色はイマイチだ」「OPTPiXで減色するほうが奇麗」とこぞって言ってた記憶もあるのだよな…。でもまあ、それでも、上記の記事の減色結果を眺める限り、GIMPの減色処理よりは全然マシに見える。GIMPのソレは突拍子もない色のドットがポツポツと入ってしまうわけで。

そうか…Photoshopのソレは特許が切れているのか…。ググってみたけど、たぶん以下がその特許内容なのかな。

_US Patent for Pattern dithering Patent (Patent # 6,606,166 issued August 12, 2003) - Justia Patents Search
_US6606166B1 - Pattern dithering - Google Patents

ざっと眺めてみたけど何が何やらさっぱり。

以上、1 日分です。

過去ログ表示

Prev - 2022/06 -
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project