hogeoge enhancer version 13

2019/07/10 14:10 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
hogeoge
todo
ホワイトポイント取得、範囲外は無視する

# 三色独立したベジェカーブ

・フォルダを全く別に作って開発しよう、ベースは引き継ぐが不要なクラスは削除
・現在のUIを変更、下にカーブを三つおいた。左に元画像を置く
・ベジェクラスは最初に本体から自分の色をもらって、その色でカーブを描画して本体にデータを送る
・本体は bezie 関数でデータを受けて、LUTを作る。sender() で色を判定する
・テーブルは self.LUT[[256],[256],[256]] で、initで直線データで初期化しておく
・bezie 関数は一度に一色のデータ変更しか受け付けない
・bezie 関数でLUTを作ったらすぐに変換後の画像を作って( self.img → self.enhanced )update でdrawを呼ぶ

・ヒストグラムの単純な平行移動ルーチンを作りたい
・三色のシンクロモードを作りたい
・マスクをかけないので enhanced と current は等しいから、どっちか削除でも良いかな

```
# 初期化
self.LUT = [ [i for i in range(256)]  for l in range(3) ]


# 平行移動 +a

# スライダー置いてコネクト、0-300、150に設定




def parallel( self , a ):


 a = a-150
 if a > 0 :
  self.LUT[0] = [i+a if i+a <256 else 255 for i in range(256) ]
  self.LUT[0][0]=0
 else :
  
self.LUT[1] = [i+a if i+a >0 else 0 for i in range(256) ]

```

----
# ベジェ曲線の座標の求め方について
- Qtはベジェ曲線を描画しているのだから座標も持ってるはずだと思いドキュメントを見てみたらこんなメッソドがあった
QPointF QPainterPath.pointAtPercent (self, float t)
このtは0-1で指定することになっていて、ベジェそのものですね
- Qtもあくまでtベースでしか値は返してくれないって事だな
内部的にはどういう実装なんだろう?
曲線とは言ってもPCだから全てはドットの描画でしかないはずだ
でもドットだとx値が飛ぶところでは間が空くはずだ
でもパスだからどんなに拡大しても綺麗に描画出来るように実装されてるはずだ
やはり全てのx値を計算して求めてるんだろうか?
だとしたらそういう関数を用意してくれても良いと思うんだが・・・
- 今は自分でx,yを求めてるが、Qtの関数を使ってみるか???
結果が同じかどうかを調べてみるとか・・・
意味ないかな? 

      

todo
ホワイトポイント取得、範囲外は無視する

三色独立したベジェカーブ

・フォルダを全く別に作って開発しよう、ベースは引き継ぐが不要なクラスは削除
・現在のUIを変更、下にカーブを三つおいた。左に元画像を置く
・ベジェクラスは最初に本体から自分の色をもらって、その色でカーブを描画して本体にデータを送る
・本体は bezie 関数でデータを受けて、LUTを作る。sender() で色を判定する
・テーブルは self.LUT[[256],[256],[256]] で、initで直線データで初期化しておく
・bezie 関数は一度に一色のデータ変更しか受け付けない
・bezie 関数でLUTを作ったらすぐに変換後の画像を作って( self.img → self.enhanced )update でdrawを呼ぶ

・ヒストグラムの単純な平行移動ルーチンを作りたい
・三色のシンクロモードを作りたい
・マスクをかけないので enhanced と current は等しいから、どっちか削除でも良いかな

# 初期化
self.LUT = [ [i for i in range(256)]  for l in range(3) ]


# 平行移動 +a

# スライダー置いてコネクト、0-300、150に設定




def parallel( self , a ):


 a = a-150
 if a > 0 :
  self.LUT[0] = [i+a if i+a <256 else 255 for i in range(256) ]
  self.LUT[0][0]=0
 else :
  
self.LUT[1] = [i+a if i+a >0 else 0 for i in range(256) ]


ベジェ曲線の座標の求め方について

  • Qtはベジェ曲線を描画しているのだから座標も持ってるはずだと思いドキュメントを見てみたらこんなメッソドがあった
    QPointF QPainterPath.pointAtPercent (self, float t)
    このtは0-1で指定することになっていて、ベジェそのものですね
  • Qtもあくまでtベースでしか値は返してくれないって事だな
    内部的にはどういう実装なんだろう?
    曲線とは言ってもPCだから全てはドットの描画でしかないはずだ
    でもドットだとx値が飛ぶところでは間が空くはずだ
    でもパスだからどんなに拡大しても綺麗に描画出来るように実装されてるはずだ
    やはり全てのx値を計算して求めてるんだろうか?
    だとしたらそういう関数を用意してくれても良いと思うんだが・・・
  • 今は自分でx,yを求めてるが、Qtの関数を使ってみるか???
    結果が同じかどうかを調べてみるとか・・・
    意味ないかな?