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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0611
猫の毛画像の一致11解決


猫の毛

リンク

2013/6/11(Tue) 13:15:05|NO.54822

picloadで読み込んだ画像とデスクトップにある表示されている画像が一致すれば
メッセージを出すような物を作りたいのですが画像を一致させる方法がわかりません。
よろしければご教授お願いします。



この記事に返信する


GrapeColor(DION)

リンク

2013/6/11(Tue) 16:03:07|NO.54823

MD5使えばいいのでは?



FunnyMaker

リンク

2013/6/11(Tue) 17:56:17|NO.54825

「画像を一致させる」のなら、単にコピーして複製物を描画すればいいような気がしますが...。
「画像が一致しているかどうか確かめる」ということではないでしょうか?
もしそれなら、2枚の画像で対応する座標の色が全部等しいことを確認すればよいと思います。



GrapeColor(DION)

リンク

2013/6/11(Tue) 18:15:08|NO.54826

暇だったのでサンプルを作ってみました。

#include "hspext.as" #include "hspinet.as" sdim Target, 256 sdim Wallpaper, 256 sdim Target_hash, 32 sdim Wallpaper_hash, 32 dialog "", 16, "背景画ファイル" if stat { Target = refstr regkey , "Control Panel\\Desktop" getreg Wallpaper, "Wallpaper", 1, 256 filemd5 Target_hash, Target filemd5 Wallpaper_hash, Wallpaper if Target_hash = Wallpaper_hash { mes "壁紙の画像と選択された画像が一致しました。" } else { mes "壁紙の画像と選択された画像が一致しませんでした。" } } stop
1ドットずつ色を比較してたら時間かかりますよ。



KA

リンク

2013/6/11(Tue) 21:14:16|NO.54831

JPGなどの非可逆圧縮と、PNG(可逆圧縮)やBMP(べた)など
の画像比較は、曖昧さを考慮する必要が有り、思ったより複雑です。

極端に言えば、似たような画像の一致度から判断することに成ります。



test

リンク

2013/6/11(Tue) 21:18:10|NO.54832

猫の毛さんの質問文では何がしたいのかよくわからないので、回答者がみんな異なる解釈をしてわけのわからない状況になっています。

もっと詳しく具体的に何がしたいのかを書けば、目当ての回答が得られるかもしれません。



猫の毛

リンク

2013/6/11(Tue) 22:02:57|NO.54833

みなさん回答ありがとうございます!

>testさん
すみません質問の仕方が不適切でした。

例えばUWSCのCHKIMG関数を使って画像一致してるか比較する
ような感じの物を作りたかったのです。

>KAさん
似たような画像の一致とはどのようにすればいいのでしょうか?



ぴょぴょ

リンク

2013/6/12(Wed) 00:49:44|NO.54834

> 似たような画像の一致とはどのようにすればいいのでしょうか?
KAさんではありませんが、一言。

似たような画像を一致させるには、4×4ドットの画像の平均を取ります。
ちょうどモザイクのような感じでね。
この平均化された値で±10とか、±50以内ならば同じ画像と判断するのが簡単。
他にも赤、青、緑の色の成分を取り出して比較すれば精度が上がると思います。

なお、この近似的画像比較は、C言語で作成しても処理に時間が掛かります。
よって、HSPで作成できたとしても実用にはなりません。
何かの画像処理プラグインを使うなら話は別ですが…。
私は便利なプラグインを知りませんね。



YSR

リンク

2013/6/12(Wed) 01:59:14|NO.54835

HSPCVで差分画像作ってそこからPSNRを計算すれば、FullHDでも1枚4秒ほどで計算できる

いや、縮小画像作って比較するほうが断然速いんですけどね



KA

リンク

2013/6/12(Wed) 06:55:17|NO.54836

人間の「視覚的に判別できない情報を削除」したのがJPGな
ので、表示されるデータは「似ている」だけに成ります。

また、色数が16ビットと24ビットでも見分けが困難です。
8ビットと24ビットでも、画像によっては分かりません。

それと画像の比率が同じでも、640×480と1280×9
60等でサイズが異なれば、見た目は同じでもデータは異なり
ます。

つまり見た目が同じでも、劣化していて色数も低くサイズが小
さい場合も有り得ます。なので、完全に画像が一致するのは同
じデータ(ファイル)と言う事です、それならバイナリで比較
すれば済みます。

上記をふまえ、「画像の一致」と言う意味を明確にしましょう。



ken

リンク

2013/6/12(Wed) 10:00:21|NO.54837

似ている画像で良いならcvmatchを応用すれば良いと思います。



猫の毛

リンク

2013/6/13(Thu) 15:00:20|NO.54860

みなさんのおかげでそれなりのものを作ることができました。
ありがとうございました。



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