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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0207
ぐるぐる画像相似率について3解決


ぐるぐる

リンク

2012/2/7(Tue) 19:31:01|NO.44748

As-HSP開発wikiに乗っている画像の総似率と
http://hsp.tv/play/pforum.php?mode=pastwch&num=11772
に興味を持っていろいろ調べて勉強していたのですが、wikiの
// 比較する対象から除外する色を指定
// imghclsadd R,G,B
#deffunc imghclsadd int p1, int p2, int p3 if IMGHCOLOR=0{sdim IMGHCOLOR,64,0:IMGHCOLOR.(length(IMGHCOLOR)-1)=""+p1+","+p2+","+p3 }else{:IMGHCOLOR.(length(IMGHCOLOR))=""+p1+","+p2+","+p3:}:return
のところがプログラム的に何をやっているのかわからなく、動かし方もわからない状態です
宜しければご教授のほどよろしくお願いします。



この記事に返信する


GENKI

リンク

2012/2/7(Tue) 22:37:50|NO.44750

見にくいスクリプトですね。
配列変数の書き方がカッコだったりドットだったり…もうやだ。

> のところがプログラム的に何をやっているのかわからなく、

そのままだと見にくいので整形。

#deffunc imghclsadd int p1, int p2, int p3 if IMGHCOLOR(0) = 0 { sdim IMGHCOLOR,64,0 IMGHCOLOR(length(IMGHCOLOR)-1) = ""+p1+","+p2+","+p3 } else { IMGHCOLOR(length(IMGHCOLOR)) = ""+p1+","+p2+","+p3 } return
意味不明なところを書き換え+解説。

#deffunc imghclsadd int p1, int p2, int p3 if IMGHCOLOR(0) = 0 { ;imghclsdelが実行された後ならこっち sdim IMGHCOLOR,64 IMGHCOLOR(0) = ""+p1+","+p2+","+p3 ;最初のいっこ目 } else { ;IMGHCOLORに配列をひとつ増やして増やしたところに値を代入。 IMGHCOLOR(length(IMGHCOLOR)) = ""+p1+","+p2+","+p3 } return
配列IMGHCOLORに「○,○,○」という文字列を追加していってるようです。
見ての通りこの部分はこのような動きをしています。

どういう意味を持つかは全体も見る必要があります。
後ろの方を見てみるとif文で文字列を比較して何やらしているようですが…よくわからないです。というか見たくない。orz



なたで

リンク

2012/2/8(Wed) 09:00:12|NO.44758

ここでの画像Aと画像Bの「画像の総似率」とは
各ピクセルごとに色が一致している数 ÷ 全体のピクセル数 です。

このAsさんのソースコードは、
次の工夫を行っています。
・色の取得を、pget を用いずに、mref x,66を用いてVRAMデータを使う
・VRAMデータでは、1バイトごとに読み込む必要があるので、
 比較元画像は、このVRAMデータの色を、整数型(int)に変更する。
・除外する色の比較を最初に行うことで、場外された場合はピクセル比較を行わない



ぐるぐる

リンク

2012/2/8(Wed) 19:15:34|NO.44764

見ずらいままスクリプト置いてすいませんでしたorz
すっかり見慣れていて、改行とかすっかり忘れていました。申し訳ないです
GENKIさん 並びに なたでさん、わかりやすい解説ありがとうございました。
おかげで全体的にどうように動いているのか理解することができました。
素早い回答ありがとうございます。
学校がプロキシなので、返信こんな時間になってしまい申し訳ないです(><)



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