mieki256's diary



2022/06/29(水) [n年前の日記]

#1 [python][cg_tools] ディザリング処理をするプログラムをPythonに移植中その4

任意のパレットを指定してディザリングをかけるサンプルプログラム群を ―― C++ で書かれてるソレを Python で書き直しているところ。

_Arbitrary-palette positional dithering algorithm

アルゴリズム2の移植中。アルゴリズム2は、CCIR601 とは別に CIEDE2000 を使った処理も記述されているけれど、試しに CIEDE2000 に切り替えたら真っ白な画像になってしまった…。

元々のC++版もコンパイルし直して画像を生成してみたけど、そちらはそれらしい結果が出てきた。Pythonで書き直す時にエンバグしてしまったのだな…。

それはさておき。元々のC++版で気になる部分を見つけた。以下の数式なのだけど…。

        C = sqrt(a * a + b + b);

Pythonで書き直したら上記の場所でエラーが出た。平方根を求める関数 sqrt() にマイナス値が入ってしまう場合があって、「そんな値を渡されても計算できないよ」と怒られる。C++の場合は、sqrt() にマイナス値が入った時の動作は規定されてなくて、処理系(?)次第で動作が違うのだとか。

なんとなくだけど、本当は以下だったりしないのかなと…。これなら必ず正の値になるし。

        C = sqrt(a * a + b * b);

以上です。

過去ログ表示

Prev - 2022/06 - Next
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