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

このタグは、入力が写真やビデオフレームなどの画像であり、出力が改善または変更された画像、画像に関連するパラメーター、または画像内のフィーチャに関する情報である場合の信号処理をカバーします。

2
ウェーブレット変換
画像に対して2Dハール離散ウェーブレット変換と逆DWTを実行したい。2D haar離散ウェーブレット変換と逆DWTを簡単な言語で説明し、2D haar dwtのコードを記述できるアルゴリズムを説明してください?Googleで提供された情報は技術的すぎました。画像を4つのサブバンド(LL、LH、HL、HH)に分割するなどの基本的なことは理解しましたが、DWTおよびIDWTを実行するプログラムを作成する方法を本当に理解できません。画像全体として画像に対して実行されるため、DWTはDCTよりも優れていると読みましたが、頭上にいくつかの説明がありましたが、ここでは間違っているかもしれませんが、DWTとDCTの圧縮手法はDWTまたはDCTを実行すると画像サイズが小さくなるためです。皆さんが知識の一部を共有し、私の知識を強化することを願っています。 ありがとうございました 再:それは画像フォーマットと関係があります。DWTで使用される「ピクセルの値」とは何ですか?私はそれを画像のRGB値であると想定しています。 import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.SwingUtilities; import java.io.*; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; import javax.imageio.ImageIO; import java.awt.*; import java.lang.*; import java.util.*; class DiscreteWaveletTransform { public static void main(String arg[]) { DiscreteWaveletTransform dwt=new DiscreteWaveletTransform(); dwt.initial(); } static final int TYPE=BufferedImage.TYPE_INT_RGB; …

1
2Dカメラを使用した3D位置推定
カメラ(iPhone)を持っています。画像に3Dコントロールオブジェクトがあり、そのプロパティをよく知っています。(私の制御オブジェクト)。動きのある二次オブジェクトもあります。最終的な目標は、移動するオブジェクトの3D軌道を一定期間確立することです。(追跡) 聞きたいのですが、調べてもらえますか? 制御オブジェクトまでの電話の距離(議論のために、カメラが特定の高さにあり、特定の距離がどちらも不明であるが、カメラは既知の表面に垂直であると仮定しましょう) 後続の各フレームでオブジェクトを配置できるセカンダリオブジェクト。私の目標は、上で示したように、その3D軌跡を推定することです。 おまけの質問、コントロールオブジェクトまでの電話の距離を設定できるようにシステムを作成できます(ただし、推奨されません)。これは2番目の点で役立ちますか?
9 tracking  image 

5
直交特徴を持つ任意画像上の回転角度の自動検出
次のサンプル(マイクロチップ写真の一部)のように、画像の角度を検出する必要があるタスクがあります。画像には直交する特徴が含まれていますが、解像度やシャープネスが異なるため、サイズが異なる場合があります。一部の光学的な歪みと収差のため、画像はわずかに不完全になります。サブピクセル角度検出精度が必要です(つまり、誤差は0.1°未満である必要があり、0.01°程度が許容されます)。参考までに、この画像の最適な角度は約32.19°です。 現在、私は2つのアプローチを試しました。どちらも、2°ステップの極小値に対してブルートフォース検索を実行してから、勾配を0.0001°ステップサイズまで下げます。 メリット関数はsum(pow(img(x+1)-img(x-1), 2) + pow(img(y+1)-img(y-1))画像全体で計算されます。水平/垂直線が揃っている場合-水平/垂直方向の変化が少ない。精度は約0.2°でした。 メリット関数は、画像の一部のストライプ幅/高さにわたって(最大-最小)です。このストライプも画像全体にループされ、メリット関数が蓄積されます。このアプローチは、水平/垂直線が整列しているときの明るさの小さな変化にも焦点を当てますが、大きなベース(ストライプ幅-約100ピクセル幅になる可能性があります)全体で小さな変化を検出できます。これにより、最高0.01°までの精度が向上しますが、微調整するパラメータが多数あります(たとえば、ストライプの幅/高さは非常に敏感です)。これは、現実の世界では信頼できない場合があります。 エッジ検出フィルターはあまり役に立ちませんでした。 私の懸念は、ワーストアングルとベストアングルの間の両方のケースでメリット関数の非常に小さな変化(<2x差)です。 角度検出のためのメリット関数の記述について、何か良い提案はありますか? 更新:フルサイズのサンプル画像はここにアップロードされます(51 MiB) 結局のところ、このようになります。

2
位相相関-ノイズ/ぼやけた画像のパフォーマンスが悪い?
1D 位相相関アルゴリズムのテストに成功し、2つの合成画像間の垂直シフトを特定しました。 しかし、実際の画像に移動すると、変換をまったく検出できません(ピークが0にあり、これは間違った結果です)。 次の画像があります。 そして、結果の位相相関(マグニチュード、リアル、イマジナリー): 画像の最初のスキャンラインは完全に白ですが、シフトは明らかに大きくなります(20ピクセル)。 予想される結果は、20行目の白い線で、合成画像または光ノイズでのみ発生します。 私のアルゴリズムは非常に単純です-各画像列について: ソースおよびターゲット画像列の1D FTを計算します(a=FT(A)、b=FT(B)) クロスパワースペクトルの計算(cross_power = a *. conj(b) / |a *. conj(b)|)- *.点ごとの乗算をconj(x)示し、複素共役を示します 位相相関の計算(phase = IFT(cross_power)) のすべての列で最大等級を見つけますphase。 コンセンサスピークの場所を見つける(たとえば、検出されたピークの場所の中央値) 実世界の(ノイズの多い)画像を処理するためにベースライン位相相関アルゴリズムを改善する方法を教えてください。 FFTベースの位相相関ではなく、NCC(正規化相互相関)を使用する必要がありますか? 更新 私はゼロパディングを試し、循環シフト(画像の単純な線形シフトのみが望ましい)によって引き起こされるエラーを除外し、Wikipediaの元の画像でこれをテストしました。 単一のピークが存在するはずなので、明らかにそこにあります。 ただし、ノイズを減らして実際に結果を改善するためにわずかなスムージング(ガウスぼかし)を実行すると、位相相関が完全に損なわれます。 これが拡張バージョンです-元のピークは弱く(なぜ??)、ゼロシフトの周りに新しいピークが現れました(なぜ??):

3
ライン検出用のFFT
ほとんどの人が尋ねるのとは異なる方法でFFTを使用しようとしています。通常の繰り返しの垂直線があるグラフの写真を撮り、画像を処理して、線が平均してどれだけ離れているかをピクセルで判断できるようにしたいと考えています。私はキャニーエッジ検出とハフライン検出を試してみましたが、関心のあるラインのみを正確に検出できるほど画像を最適化できないと思います。 したがって、私の試みは、画像の10行をスキャンして、ピクセル値をピクセル列に対応するビンに蓄積することです。グラフ化すると、非常に見栄えの良い波形になります。これに対してDFTまたはFFTを実行すると、ライン反復の周波数であると思われるピークを見つけることができます。(これは誤った仮定である可能性があります) 私の質問は、この番号は何に対応していますか?つまり、ピクセル単位であるため、サンプリングレートがどうなるか混乱していると思います。これはFFTの有効な使用法だと思いますが、私が成功するはずだと思う時点でここに落ちています。 例として。幅300ピクセルの画像を作成しました。正確に30ピクセル間隔で描画された1ピクセル幅の線があります。2つのピークが見つかりました。1つは75に、もう1つは実際のコンポーネントの225(対称に見える)です。(架空のコンポーネントが再生されるとは思いませんか??)線が30ピクセル離れていることを知っています。75と225はどのように関連していますか? 私はこれを得るために一生懸命努力しています、そしてあなたが推薦することができるどんな助けにも感謝します。この時点で、エッジ検出をあきらめ、このアプローチを試してみたいと思います。 前もって感謝します。
8 image  opencv  fft  dft 

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

1
一連のムービーフレームから正弦波アーティファクトを削除する
非常に周期的なアーチファクトによって汚染された一連のムービーフレームで構成されるデータセットの事後分析を行っています。このアーティファクトをフレームから削除したいと思います。 プロットを簡単にするためにM、ピクセル値の配列をに再形成し、[nframes, npixels]すべてのピクセル値を平均して1Dベクトルを作成しましたm。以下は、この信号が時間領域でどのように見えるかです。拡大されたインセットでは、振動がはっきりとわかります。 次に、を使用してピリオドグラムを作成し、周波数に対してFm = rfft(m)プロットabs(Fm)**2しました。約1.5 Hzに非常に鋭いピークが見られます。 時間の周期性だけでなく、このアーチファクトの空間成分も弱いようです。正確なピーク周波数値では、フレームのx軸全体で位相が滑らかに変化するように見えるため、右は左のピクセルより遅れる傾向があります: 力ずくのアプローチとして、1.5Hzを中心とするノッチフィルターを使用して、時間領域の各ピクセルをフィルターに掛けてみました。臨界周波数1.46および1.52Hzの4次バターワースフィルターを使用しました(フィルターの設計に精通していないため、より適切な選択肢があると確信しています)。 フィルタリング後の平均ピクセル信号は次のようになります。 そして対応するピリオドグラム: ノッチフィルターは、アーティファクトを減らすのにかなり良い仕事をしますが、基本的には純粋な定常正弦波のように見えるので、周波数空間のその部分を単に減衰させるよりも上手く行けると思います。 私の最初の(非常に素朴な)アイデアは次のようなことをすることでした: ムービーの各ピクセルのフーリエスペクトルから振動の周波数、位相、振幅を取得します 時間領域で振動を再構築する 映画のフレームからそれを引く 干渉は通常スペクトル的に純粋ではなく、一時的に静止していないため、これは通常人々が行うことではないことを理解していますが、私の場合はそれが理にかなっているのではないでしょうか。 データ フル16ビットTIFFスタック(非圧縮2GB以下) 空間的に間引かれた8ビットバージョン(約35MB非圧縮)

3
画像からのおもちゃのヘリコプターの向きの決定
私は、WebカメラといくつかのIR LEDを備えたArduinoを使用して、おもちゃのIRリモコンヘリコプター(Syma s107など)の自律制御システムの開発に取り組んでいます。約2 GHzで実行されているラップトップでOpenCVを使用してC ++を使用しています。システムをできるだけリアルタイムに近づける必要があります。 2D画像でヘリコプターの回転を効果的に決定する方法がわかりません(より正確には、カメラの画像平面に対するヘリコプターのヨー)。この情報は、ヘリコプターを画面内で安定させるために重要です。 私は検討し、少なくとも部分的に胴体と尾の位置を決定し、ジオメトリとパースペクティブのいくつかのトリックを使用して形状の推定を得ましたが、十分に低いノイズで尾と胴体を正確に見つけることは困難であることが判明しました。ヘリコプターの特定の場所にある種のカラーマーカーを使用することも検討しましたが、ほぼ左とほぼ右よりも正確な見積もりを取得する方法がわかりません。

2
画像のコントラストを測定する
プロジェクトの場合、グローバルイメージのコントラストを測定したいと思います。 さまざまな画像を比較して、コントラストが最高の画像を取得したいと思います。ウェーバーのコントラストについて知っていますが、正規化されたコントラスト値(0〜1の範囲)が必要です。 openCVでこれを行う簡単な方法はありますか?


2
Matlabを使用して画像をセグメント化するために流域を適用する方法は?
流域を使用してこの画像をセグメント化して、画像内の人物のみを取得する方法は? これまでに次のことを行いました。 勾配を計算しました 流域変換を計算しました 私のコード: clear; I=imread('inpaint.jpg'); I=rgb2gray(I); hy = fspecial('sobel'); hx = hy'; Iy = imfilter(double(I), hy, 'replicate'); Ix = imfilter(double(I), hx, 'replicate'); gradmag = sqrt(Ix.^2 + Iy.^2); figure, imshow(gradmag,[]), title('Gradient magnitude (gradmag)') L = watershed(gradmag); % Lrgb = label2rgb(L); figure, imshow(L), title('Watershed transform of gradient magnitude (Lrgb)') 流域の適用に成功しました …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.