タグ付けされた質問 「image-processing」

一般に、画像処理は、写真やビデオフレームなどの入力が画像である信号処理の任意の形式です。

3
照明が変化するOpenCVの皮膚色不変
照明とは無関係に肌の色をとらなければなりません。次の基準を使用しましたが(hsvとrgbを使用)、機能しません。 int h = get_hue(...); int s = get_saturation(...); int r = get_red_component(...); int g = get_green_component(...); int b = get_blue_component(...); if ((h<38)&&(h>6)&&(s>0.23)&&(s<0.68)){ // skin color } else if ((r>95) && (g>40) && (b>20) && ((maximum(r,g,b)-minimum(r,g,b))>15) && (abs(r-g)>15)&&(r>g)&&(r>b)){ // also skin color } それは私の肌が照らされている朝には機能しますが、夕方までには機能しません。 どんな助けでもありがたいです。前もって感謝します。(PS-私の肌は白くありません。)

1
画像から反射を取り除く方法は?
私は画像をより良いものにし、不要な妨害をすべて取り除いて遊んでいます。主な懸念は、来るかもしれない不要な反射を取り除くことだとわかりました。 私は、これらの反射を取り除くためにICAを使用する論文を読みました。他にどのような方法が機能しますか? 画像があるとしましょう: 別の画像: CMYKに変換しました このセミブラック部分を削除するにはどうすればよいですか?

1
セグメンテーションアルゴリズムのパフォーマンスを評価するにはどうすればよいですか?
私は現在、肝臓腫瘍セグメンテーションのプロジェクトに参加しています。成長領域を使用して肝臓をセグメント化し、結果の精度を評価する必要があります。Tanimoto Coefficient、Correlationなど、領域拡張アルゴリズムのセグメンテーションの精度を評価するための特定のメトリックがあることを最近知りました。しかし、それらをMatlabに実装する方法がわかりません。/programming/9553204/tanimoto-coefficient-using-matlabをチェックしてください

2
異なる画像の品質(または品質の違い)を測定する方法は?
カラー画像の品質を、別の画像との違いとして、できればそれだけでも測定したいと考えています。 この質問は、私たちにビジョンアプリケーションがあり、照明条件、計算、および同様の周囲条件を改善しているという事実から来ています。次のような画像の品質の向上を測定したいと考えています。 詳細の量 コントラスト 画像の品質や画像内の情報量を説明するその他のもの このためのアイデアはありますか?多分ヒストグラムの比較、またはヒストグラムの高度な距離測定?私はいくつかの良いアイデアを聞きたいです! 編集: もちろん、ビジョンアプリケーションの結果は、画像の品質の尺度です。だが: 品質の測定を意図したものではなく、他の何かの測定です アプリケーションの結果に影響を与えるパラメーターが他にもある(たとえば、画像自体)、したがって、それは画像の品質の大まかな尺度にすぎません 人間の評価を使用することもできますが、特に人間の目は客観的ではないため、私は本当に客観的な測定が必要です(私たちの心はトリックを演じ、監視するモニターは画像に影響を与えるなど)。 最終編集: 画像の品質について議論した後、この質問はそのままにしておきます。私自身(および私の同僚)のアイデアは次のとおりです。 RGBチャネルの範囲(可能な限りすべての色を使用していますか) ソーベル振幅の平均(詳細の量または焦点の大まかな尺度。詳細については、この質問も参照してください) クリッピングされるピクセルの量または0(これらのピクセルには情報がありません) また、RGBチャネルとYCbCrチャネルの平均(変換後)。平均色が変化したかどうかを確認できます(他の光源からの光の調査につながるか、独自の照明を変更した後)。 これらの統計を組み合わせることで、単に画像を見るのではなく、より客観的な観点から品質の印象を得ることができます。また、変更が発生する可能性のある場所へのポインタにもつながります。

2
Pythonを使用してパターン検出を行うアプリのGUIでボタンを検出するにはどうすればよいですか?
Windowsの電卓アプリのGUIを例に説明します。この電卓アプリケーションが開いていて集中している場合、すべてのボタンを検出する方法を見つける必要があります。非侵入型のメソッドしか使用できないため、ボタンIDなどは問題外です。これは私を画像認識に導きます。あるいは、特定の画像ではなく、特定のパターンに従う一連の画像が必要なので、画像検出と言います。特定のボタン画像と画像認識を使用して、クリック、右クリック、dblクリックなどを行う方法を知っています[1]。逆にどうすればよいかわかりません。GUIをスキャンして、ボタンであるという要件を満たす領域を見つけます(長方形、テキスト/アイコン/グラフィックラベルなど)。より大きな取り組みは、長方形の形状を持たないアイテムを検出することです(たとえば、Windowsデスクトップ上のアイコン)。 私が必要としているものに最も近いのは、写真から顔を検出することです。[2] しかし、これを私の場合に適用する方法がわかりません。人間の顔の検出では、Haarカスケード生成で顔の何百枚もの写真を使用する必要があることがわかりました(10〜15個のボタンのスナップショットだけでこれを行う方法がわからない)。リンゴのような別の種類のオブジェクトを検出する必要がある場合は、多くの画像を使用して、そのオブジェクトのHaarカスケードを再度生成する必要があります。 あなたは、パターン検出のみを使用して、GUIでボタン、アイテムなどを検出しようとしたことがありますか?「これはアイコン/ボタンです」と言って、その領域をスナップショットで取得できるようにするだけです。 [1] PythonでSikuliXを使用して、特定のパターンでアクションを実行します。 [2] OpenCVおよびHaarカスケード(XML形式)を使用すると、これが簡単にできることがわかりました。Haarカスケードを作成するには、少しの忍耐とスキルが必要です。

2
データの2Dマップの主な方向
それは非常に単純な質問かもしれません。コメント、ガイド、または完全な解決策をお願いします。ただし、不完全な解決策ではなく、斬新で実用的なアイデアを優先します。 -変動の主な方向、つまり次の図の例(北東、南西)の主対角線を見つける方法は? アルゴリズムやコーディングやスニペットのアイデアは大歓迎です。 更新: 承認された回答に記載されている手順は、最も単純な実装ではほぼPCA(主成分分析)であることがわかりました。PCAは非常によく機能しました。結果として生じる方向は、視覚的に予想できるものと完全に一致しています。

3
シンプル、ストリーミング、ロスレスの画像圧縮
次の特性を持つ画像圧縮技術を知っていますか? 無損失の ストリーミング-オンザフライでピクセル単位で圧縮したい。 メモリ不足のオーバーヘッド-単一の行をバッファリングする余裕がありますが、理想的にはそれもできません。 動的辞書なし 「実世界」の画像のみなので、チェッカーボードのような「厄介なケース」でのパフォーマンスは重要ではありません 2-3x圧縮(5x-10xはさらに良いでしょうが、それは私が知っている多くを求めています) 10-16ビットピクセルで動作できます(カメラによって異なります) 私の画像は、幅が〜1kピクセル、ピクセルレートが〜20Mpix /秒になります。ピクセル深度は、1ピクセルあたり10〜16ビットです(カメラの選択によって異なります)。サブ16ビットピクセル幅は、連続ビットストリームから抽出する必要はなく、現時点では16ビットワード内で表されると想定します。 何らかの形のデルタ+算術コーディング?

4
ビデオフレーム間のハリスコーナートラッキングを改善するための前処理?
無人航空機のグレースケールビデオ画像安定化アプリケーションでは、フレームNから選択されたフレームN + 1の「良い」ハリスコーナーを見つけるのが困難です。問題の原因は、フレーム間の急激な不均一なピクセルコントラストの変化にあるようです。おそらく空中にいて、遅いフレームレート(約3 fps)を使用していることが、ピクセルコントラストのシフトの根本的な原因です。 フレームN + 1の「良い」ハリスコーナーの追跡を改善するために、フレーム間のピクセルコントラストを滑らかにするために、さまざまなヒストグラム均等化手法を試しました。結果は依然として悪いままです。 誰かが遅いフレームレートの日中の空中環境でビデオフレーム間のハリスコーナートラッキングを改善する方法について何か提案がありますか?よろしくお願いします。 編集:2012年1月30日、テストケース(実際のフレームサイズではない)画像を追加 概要の更新:2012年2月8日。人々は、Harrisコーナーはグレースケールビデオ機能の追跡ではそれほど有用ではないことを示唆しています。以下の回答は、さまざまな代替案へのリンクを提案および提供しています。これらの代替案を評価しており、その時点で結果を報告します。コメントと回答をありがとうございました。 これは、35個の「良好な」5x5ハリスコーナーが選択された前のフレームNです。元のフレームは8 bppのrawピクセルです。 59列266列目にある5x5のハリスコーナーは次のとおりです。 追跡された5x5のHarrisコーナーがいくつかある現在のフレームN + 1。そのうちの1つだけが有効です。 r47 c145のフレームN + 1に表示される前のフレーム5x5 Harrisコーナー: 選択した5x5のピクセル強度がすべて、前のフレームから現在のフレームまで不均一に変化していることに注意してください。フレーム間のコントラストイコライゼーションテクニックは、現在のフレームで選択された5x5ピクセルの前のフレームを検出するのに役立ちません。すべての提案を歓迎します。

1
業界標準のJPEG / H.264よりも優れた圧縮を提供する、非常に計算量の多い画像/ビデオ圧縮スキーム
広く採用されている業界標準(JPEG / H.264など)と比較して優れた圧縮性能(画像品質を一定に保つ)を提供する画像/ビデオ圧縮スキームを検索しようとしていますが、計算上またはリソースが多すぎるためです。 CPUベースのワークステーションに集中的に実装することは実行不可能であるため、一般的な標準では採用されていません。 フラクタル圧縮は良い例だとしか思いませんでした。コミュニティはそのような例をこれ以上知っていますか?

1
バイナリイメージ登録用の2D変位ベクトルを計算する方法は?
私の入力は次のようないくつかのバイナリイメージです。 それらは全体的に同じコンテンツを持っていますが、ハンドカメラから作成されているため、登録解除される場合があります。私が計算したいのは、最初の画像から2番目の画像への2D変位ベクトルです。私はOpenCVを使用しており、最初の試みは、特徴点(SURFアルゴリズム)と両方の画像間のアフィン変換を計算することでした。しかし、もちろん、特徴の説明はバイナリ画像ではやや不十分なので、マッチングは困難であり、マッチングマップは非常に不正確です。 誰か私がこれをどうやってできるのか考えていますか?

1
画像データのFFT:境界効果を回避するための「ミラーリング」
Matlabに米の画像を読み込んで表示します。 g = imread('rice.png'); imshow(g); この画像のFFTを取り、シフトします。 G = fft2(g); imshow(log(abs(fftshift(G)) + 1), []); 画像の中心を介してax軸とy軸を配置すると、画像が対称であることがわかりましたg(-x、-y)= g(x、y)。1D信号の場合、実信号のFFTには対称の実部と非対称の虚部があることがわかります。これが2次元で表示されているものでしょうか。 元の画像は上部より下部の方が暗いため、周期的な境界で強い水平方向の不連続性があり、FFTの垂直線が発生しています。 この境界効果を解消したい。これに対する一般的なアプローチは、ウィンドウ処理のようです。 しかし、私はこの問題を「ミラーリング」と呼ばれる論文で見つけた手法で解決したいと思っています。論文はあまり具体的ではなかったので、このアプローチを理解するには、あなたの助けが必要です:-)。 最初に、元の画像から対称的な「タイル」を作成します。 tile=[flipdim(g,2) g; flipdim(flipdim(g,1),2) flipdim(g,1)]; imshow(tile); 次に、この「タイル」のFFTを使用します。 Tile=fft2(tile); imshow(log(abs(fftshift(Tile)) + 1), []) 縦線は(ほとんど)なくなっているようです。ただし、ミラーリングにより対称性が高まったようです。 正しい結果は何ですか?元の画像のFFTまたは「ミラーリングされた」画像のFFT? 境界効果をなくし、純粋に本物のFFTを取得できるように、「ミラーリング」できる方法はありますか? どんな答えも事前にありがとう!

1
ビデオの半一定フレームから固定テンプレート画像を検出する
ビデオのさまざまな「状態」を検出するために、さまざまなビデオゲームを処理しようとしているビデオがいくつかあります。 私が取り組んでいる最初のゲームは、スーパーストリートファイター4のエディションです。 その中で、「vs」のキャラクター画面がいつ表示されるのかを検知したいと思います。ビデオの1フレームの例を次に示します。 (から取ら〜10秒マークのこの動画) 「vs」を検出できた場合、ビデオのフレームが「vs」画面であることを検出できるため、他の情報を探すことができます(今のところ、これを使用して試合が始まる直前の動画のタイムスタンプを検出します)。 とは言っても、ここで私が処理するビデオのフレームについて想定できることはこれです(これが唯一のビデオではなく、数万または数十万とは言わないまでも数千のビデオがありますが、処理におけるスケールの問題)多くのビデオは完全に異なるドメインです): 可能な限り最低解像度の画像を処理して、信頼性の高い結果を得ることが望ましい(低解像度=処理時間の高速化)。上の画像は480 x 270ピクセル(18のYouTubeビデオfmtから取得)ですが、サイズが異なる場合があります(fmt18のYouTubeビデオですが、サイズは640 x 360ピクセルです)。 ほとんどの動画は直接フィードされます ほとんどの動画は16:9のアスペクト比になります 赤みがかった背景はアニメーション化されますが、一般的にはそのオレンジ赤の色(炎)内にあります バージョンを示すために、「vs」の下部にフェードイン/アウトバッジが表示される場合があります(これは重要ですが、現時点では重要ではありません)。 (このビデオの〜3sマークから取得。また、上記は640 x 360ピクセルの解像度であることに注意してください) 「vs」のサイズと位置は、他の直接フィード動画に比例してほぼ同じになります(まだ確認していませんが、動かないことはわかっています)。 キャラクターは、両側に30を超えるプールから選択されます(つまり、フレームの領域は異なります)。 ビデオの長さは通常2〜4分で、4,000〜6,00フレームです。ただし、他のさまざまなゲームやライブアクションがカットされた長いビデオ(おそらく2時間)があるかもしれません。これらのビデオはそれほど重要ではありませんが、解決策から、特定のゲームが全体の大きなビデオのどこにポップアップ表示されるかがわかったら、すばらしいです。 キャプチャのネイティブ解像度は720pなので、「vs」のベースラインイメージは、「ネイティブ」サイズと見なされるサイズで取得できます。 最終的に、私はコードに.NETで、このパイプラインを探していますが、それはありませんスーパー重要なのは、概念実証のは、私が翻訳し、.NETのためにそれを最適化することができるように含まれる技術の理解だけでなく、ここではより重要です同じジャンルの他のゲームの他のビデオ(もし私が重要な弁別器を見つけることができれば、そしてUltimate Marvel対Capcom 3、Street Fighter x Tekken、BlazBlue:Continuum Shiftなど)のビデオも同様です。 私もMathematicaに足を踏み入れており、ホームバージョン8.0を持っているので、その環境での概念実証も歓迎されます。

1
アンシャープマスクにラプラシアンはどのように使用されますか?
一部のアンシャープアルゴリズム(Matlabのfspecialなど)では、ラプラシアンカーネルを使用して画像をシャープにします。 私が知っていることから、画像を最初にぼかす必要があります。次に、ぼかした画像を元の画像から差し引いて、より鮮明な画像を取得します。ラプラシアンの部分は、平滑化が行われるとされる場所に正確に到達します。間違っている場合は修正してください。ただし、ラプラシアンは平滑化を行いません。 では、ラプラシアンは画像をシャープにするのにどのように役立ちますか?

1
通常のパターンの覆われた部分を再構築するにはどうすればよいですか
私はかなり規則的なパターンからなる画像のセットを持っています-本質的にはほぼ同心円状に歪んだ楕円のセット-円形のディスクで小さな領域(画像領域全体の1%未満)が隠れています。ディスクに隠れていない場合に見えるので、ディスクによって隠されているパターンの部分をデジタルで再構築し、「完全な」イメージを生成できるようにしたいと思います。 パターンは完全に規則的ではありませんが(楕円が歪んでいて、中心が画像から画像へと移動します)、パターンの覆い隠された部分がどのように見えるかは人間の観察者にはかなり明白です-鉛筆でそれを描くことができます瞬間!したがって、これを自動的に行うことができる画像処理アルゴリズムが存在するかどうかを疑問視します。たとえば、画像を円形ディスクをパターンの残りの部分から分離する適切なスペースに変換し、ディスクをフィルタリングしてから、画像を再構築するための逆変換。しかし、この分野の専門家ではないので、何を探しているのか本当にわかりません。誰か提案はありますか?

2
逆フィルターを使用して空間的にたたみ込まれた画像を補正する(デコンボリューション)
宿題の一環として、逆フィルターを実装しています。画像を劣化させ、逆フィルターで回復します。 5x5ボックスフィルターを使用して空間領域で画像をたたみ込みます。IフィルターをFFT、劣化画像をFFTし、劣化画像をフィルターで除算します。結果を画像に逆FFTすると、ゴミが発生します。 画像をFFTする場合、フィルターをFFTし、2つを乗算し、その結果をFFTフィルターで除算すると、元の画像に非常に近くなります。((X * Y)/ Y〜== X) 数学は「空間畳み込み== FFT乗算」ほど単純ではありません。 逆フィルターを使用する正しい方法は何ですか?使用されている正確なカーネルでイメージを劣化させています。ノイズを加えていません。 Bovikの教科書「画像処理の基本ガイド」では、ほぼ完全に逆フィルターを無視しています。Gonzalez&Woodsはもう少し希望がありますが、ほとんどすぐにウィーナーフィルターにスキップします。 私はstackoverflow.comで同様の質問をしてい ます/programming/7930803/inverse-filter-of-spatially-convolved-versus-frequency-convolved-image (この質問にも[宿題]のタグを付ける必要がありますが、タグはまだ存在せず、作成する担当者もいません。) 編集。以下のいくつかの素晴らしい提案について。@ dipan-mehta FFTを行う前に、畳み込みカーネルを画像と同じサイズにパディングしています。カーネルを左上に配置しています。次にifft(ifftshift())を画像に保存すると、良い結果が得られます。カーネルとイメージの両方でifft(ifftshift())を実行しました。良い(ish)結果。(画像は私の/programming/7930803/inverse-filter-of-spatially-convolved-versus-frequency-convolved-image質問にあります。) @ jason-rはおそらく正しいでしょう。基礎となる畳み込み+変換の数学を理解していません。「デコンボリューション」は私にとって新しい言葉でした。まだ学ぶべきことがたくさんあります。助けてくれてありがとう! 宿題の私の解決策は、周波数領域ですべてを行うことです。教授と話をした。私は必要以上に割り当てを難しくしていました。彼女は、ノイズを追加してから、逆フィルター、ウィーナーフィルター、および制約付き最小二乗フィルターを試してみたかったのです。演習のポイントは、フィルターがノイズをどのように処理するかを確認することでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.