問題タブ [phash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Visual Studio 2012 - .lib をインクルードしようとすると「エラー LNK2019 未解決の外部シンボル」が表示される
.lib
Visual Studio 2012 C++ プロジェクトにファイルを含めようとしています。ライブラリは、具体的には pHash プロジェクトです。プロジェクトのヘッダー ファイルを にProject->Properties->Configuration Properties->VC++ Directories->Includes
、.lib
ファイルのフォルダーを に追加しましたProject->Properties->Configuration Properties->VC++ Directories->Library Directories
。pHash.lib
の依存関係のリストに追加されましたProject->Properties->Configuration Properties->Linker->Input->Additional Dependencies
。しかし、これをすべて実行しても、ライブラリを使用しようとすると、まだこのエラーが発生します: error LNK2019: unresolved external symbol "int __cdecl ph_dct_imagehash(char const *,unsigned __int64 &)" (?ph_dct_imagehash@@YAHPBDAA_K@Z) referenced in function _main
.
私のコードは次のようになります。
image - 別の画像内の画像検索
特定の画像ファイルに類似した画像を見つけたい。
例えば:
画像 1,2,4,5 は類似しています。
画像 4,5,6,7 は類似しています。3はそれらと似ているかもしれません。
http://www.phash.org/demo/をテストしました。使用される 3 つのアルゴリズムがあります: Radial、DCT、Marr/Mexican。
DCT は 1-2 を類似として提案します。しかし、1-4 は類似しているとは言えません。
特に1〜4を類似のものとして見つけるために、さまざまなライブラリ、アルゴリズムを提案できますか? 前に述べたように、私の目的は (1,2,4,5) と (4,5,6,7) を類似のものとして見つけることです。
image - クラウドでの画像マッチング
2つの画像が似ているかどうかを確認する方法は? 画像全体をクラウドに送信せずに、1 つの画像を携帯電話でキャプチャし、もう 1 つの画像をクラウドに保存しますか? ソース画像から特徴点を抽出し、クラウドでヒストグラム マッチングを使用すると問題が解決することがわかりました。pHash などのハッシュ関数を使用するなど、より良いアプローチはありますか。
c# - 「保護されたメモリを読み書きしようとしました」というエラーが表示されるのはなぜですか。C#で画像のサイズを変更した後?
画像の大規模なデータベースのハッシュ値を計算するために PHASH を使用しています。これらの画像は高解像度であるため、ハッシュの高速計算のためにサイズを変更する必要があります。
ただし、画像のサイズを変更すると、PHASH プログラムがエラーをスローします。サイズを変更しなければ、PHASH プログラムは正常に動作します。
私のサイズ変更コードは以下の通りです。
私が受け取ったエラーは「保護されたメモリを読み書きしようとしました」です。
Phash コードは次のとおりです。
上記の関数は C++ プログラムを呼び出し、その画像のハッシュ値を返します。画像がプログラムでサイズ変更されていない場合は正常に機能します。MS ペイントを使用して画像のサイズを変更すると、正常に動作します。
c# - SOLR を使用して 2 つの ulong 間の「類似度」/「ビット数」を計算する
David Oftedalによって実装されたNeal Krawetz 博士の方法を使用して PHASH を計算した画像のデータベースがあります。
これらの long の差を計算するサンプル コードの一部は次のとおりです。
課題は、これらのハッシュの 1 つしか知らないため、SOLR にクエリを実行して類似性の順に他のハッシュを見つけたいということです。
いくつかのメモ:
- ここでSOLRを使用します(私が持っている唯一の代替手段はHBASEです)
- カスタム Java を solr にインストールすることを避けたい (既存のプラグインをインストールしてよかった)
- C# で多くの前処理を実行できることを嬉しく思います
- 複数のフィールドを使用して、データをビット文字列や long などとして保存できます。
- SOLRNet をクライアントとして使用する
編集、いくつかの追加情報(問題に巻き込まれ、広く知られている領域であると想定し始めたことをお詫びします)。C# コンソール/サンプル アプリへの直接ダウンロードは次のとおりです: http://01101001.net/Imghash.zip
このコンソール アプリの出力例は次のようになります。
004143737f7f7f7f phash-test-001.jpg
0041417f7f7f7f7f phash-test-002.jpg
類似度: 95.3125%
c++ - Ubuntu + PHP 拡張で pHash をコンパイルする
pHash 拡張機能をコンパイルしようとしています。ここで段階的な説明を見つけましたhttps://serverfault.com/questions/491730/compile-phash-on-centos-php-extension
しかし、私は2つの問題にぶつかっています:
1) /usr/local/include フォルダーに CImg.h をコピーしたにもかかわらず、pHash ソースの ./configure スクリプトを起動すると、ログに次のエラーが表示されます。
pHash DCT画像ハッシュアルゴリズム関数に最も興味があるので、これは本当に残念です
2) make を起動すると、pHash のコンパイルが次のエラーで失敗します。
なぜこれが起こっているのですか?上記のリンクに記載されているように、すべての依存関係が満たされていることを確認しました。pHash-0.9.5 で試してみたいのですが、phash.org の Web サイトで古いバージョンのアーカイブを見つけることができませんでした。
c++ - pHash ライブラリとその ruby バインディングを使用して 2 つのビデオを比較しようとすると、セグメンテーション フォールト エラーが発生する
最新の ffmpeg および pHash ライブラリ (ffmpeg-2.2.1 および pHash-0.9.6) と pHash ruby gem ( https://github.com/toy/pHash )を使用してシステムをセットアップしました。
Ruby を使用して、次のような 2 つのビデオ ファイルを比較しようとしています。
このスクリプトを実行すると、セグメンテーション エラーが発生します。
pHash ライブラリの一部である ph_dct_videohash 関数でクラッシュが発生したようです。関数はファイル pHash.cpp にあります。誰かにとって意味がある場合に備えて、ここにコピーしています:
どんな助けでも大歓迎です!