HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1019
YSRなぜ実行する度に計算結果が違うのかが本気で分かりません……2未解決


YSR

リンク

2012/10/19(Fri) 00:56:05|NO.50065

HSPCVの中の、「cvcopy」という命令についての質問です。ヘルプによると、
>CVCOPY_SET (上書きコピー)
>CVCOPY_ADD (加算)
>CVCOPY_SUB (減算)
>CVCOPY_MUL (乗算)
>CVCOPY_DIF (差分)
>CVCOPY_AND (論理積)
の6モードが存在しているようですが、イマイチそれぞれの意味が分かりません。

「SETは『単純な上書き』」
「ADDは『R・G・Bそれぞれの要素についての足し算』
(コピー先にコピー元の値を足してコピー先に上書き貼り付け)」
「SUBは『R・G・Bそれぞれの要素についての引き算』
(コピー先からコピー元の値を引いてコピー先に上書き貼り付け)」
「MULは『R・G・Bそれぞれの要素の数字を掛け算した結果を0〜255に丸める』」
「DIFは『R・G・Bそれぞれの要素の差の絶対値』」
「ANDは『R・G・Bそれぞれの要素のビット単位での論理積』」
といった認識で合っていますか??



この記事に返信する


YSR

リンク

2012/10/19(Fri) 00:56:55|NO.50066

すみません、本気で投稿名を間違えました……
「cvcopyについて」というタイトルにしたかったのに……



774

リンク

2012/10/19(Fri) 18:24:12|NO.50068

その認識で合ってるように思いますよ。
ただMULの場合、本当に各数値を掛け合せてるだけなようで
「画像の乗算」としては違和感ある挙動ですね…

#include "hspcv.as" boxf :color 80,80,80 :boxf ,,79,79 :color 128,64,2 :boxf 80,,159,79 hsvcolor ,,255 :pos 12,28 :mes " src\n$505050" :pos 92,28 :mes " dest\n$804002" gmode 1,80,80 :buffer 1,80,80 :color 80,80,80 :boxf :color 128,64,2 cvbuffer 0,80,80 :cvbuffer 1,80,80 :cvputimg 0 mode="SET","ADD","SUB","MUL","DIF","AND" repeat 6 gsel 1 :boxf :cvputimg 1 :cvcopy ,,,1,cnt :cvgetimg 1 gsel 0 :pos cnt*80,100 :gcopy 1 :pget s=strf("%5s\n$%02X%02X%02X",mode.cnt,ginfo.16,ginfo.17,ginfo.18) color :pos cnt*80+12,128 :mes s hsvcolor ,,255 :pos cnt*80+11,126 :mes s loop



ONION software Copyright 1997-2021(c) All rights reserved.