掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
二つの画像の引き算をして再び画像化するには? (ID:34526)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、delphiが全くの初心者のチャーリーです。 さっそくなのですが質問です。 僕は違う画像を二つ表示して、それぞれのRGBの輝度値を取り出し、この輝度値の対数の差を求めて、これを基に再び画像化させるソフトを作ろうとしています。 しかし、このコードで画像化すると画面が黒くなります。ほかにincという関数を使ったのですが、今度は逆に画面が白くなってしまいました。最初の二つの画像に問題があるのかといろいろ試してみたのですが、そうではないようです。 つくったコードをのせますので、何か気づかれましたら回答をお願いします。今は画像が白黒なのでRの輝度値だけで計算しております。 var R,G,B,cR,cG,cB: array[0..639,0..511] of byte; X,Y :word; buff,buff2: double; begin buff2:=0; for X:=0 to 639 do for Y:=0 to 511 do begin R[X,Y]:=GetRvalue(Image1.Canvas.Pixels[X,Y]); cR[X,Y]:=GetRvalue(Image2.Canvas.Pixels[X,Y]); if R[x,y]=0 then buff:=0 else if cR[x,y]=0 then buff:=log10(R[x,y]) else buff:=Log10(R[X,Y])-Log10(cR[X,Y]); if buff>buff2 then buff2:=buff; end; for X:=0 to 639 do for Y:=0 to 511 do begin if R[x,y]=0 then buff:=0 else if cR[x,y]=0 then buff:=(log10(R[x,y])) /buff2*255 else if buff>0 then buff:=(Log10(R[X,Y])-Log10(cR [X,Y]))/buff2*255 else if buff<0 then buff:=0; Image3.Canvas.Pixels[x,y]:=RGB(Trunc(buff),Trunc(buff),Trunc (buff)); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.