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

OpenCV(オープンソースコンピュータービジョン)は、リアルタイムのコンピュータービジョンのためのプログラミング機能のクロスプラットフォームライブラリです。

3
満たされたガラス物体の検出
私はこの質問からstackoverflowでここに送信されました。質問が具体的すぎて、ここの方法ではない場合は失礼します:) タスクは、特定の液体が入っているガラスを見つけることです。写真を見せて、私が達成しようとしていることと、これまでに達成しようとしていたことを、写真の下の説明で説明しましょう。 写真:(写真とリンクを投稿するには、少なくとも10の評判が必要なようです。リンクはこれを行う必要があります:(そうでなければ、スタックオーバーフローの質問を見ることができます) 詳細な説明:opencvで特定の形状のガラスを検出するアルゴリズムを実装しようとしました(ガラスは異なるカメラショットの角度/距離によって変換される可能性があります)。他の形の他のグラスもあります。私が探しているガラスも、他の色を含むガラスと区別するために、いくつかの着色された液体で満たされます。 これまでのところ、私はSIFT特徴抽出機能を使用してグラスのいくつかの特徴を見つけ、それをグラスの中にある他の写真と照合することを試みました。 このアプローチは、ガラスが非常に特定の位置にあり、背景が学習画像に似ているような非常に特定の条件でのみ機能しました。問題はまた、ガラスが3Dオブジェクトであり、そこから特徴を抽出する方法がわからないことです(おそらく、異なる角度からの複数の写真がリンクされているのでしょうか?)。 今、私は他にどんなアプローチが使えるのか分かりません。私はこれについていくつかの手掛かりを見つけましたが(ここでは/programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338)、リンクが壊れているようです。 別の問題は、そのようなガラスのさまざまな「空のレベル」を検出することですが、ガラス自体を適切に見つけることさえできませんでした。 このタスクでのアプローチについての推奨事項は何ですか?ローカル3Dオブジェクトフィーチャーを見つけるには別の方法を使用する方が良いでしょうか?それとも、他のアプローチを完全に使用する方が良いでしょうか?複数の写真のセットからオブジェクトを「学習」するアルゴリズムについて聞いたことがありますが、実際にはこれを見たことがありません。 任意のアドバイスは本当にいただければ幸いです



1
ビデオから数えた車両
免責事項:この質問をStackOverFlowに投稿しましたが、こちらの方が適していることがわかりました。 私は画像処理に少し慣れていないので、コードではなく、問題の最適な解決策を見つけることについてお聞きしたいと思います。いいアイデアはまだ思いつかなかったので、アドバイスをお願いしたいです。 私はOpenCVを使用して、ビデオファイルまたはライブカメラから車両を数えるプロジェクトに取り組んでいます。そのようなプロジェクトに取り組んでいる他の人々は、通常、動いているオブジェクトを追跡してからカウントしますが、その代わりに、私は別の視点で作業したいと思いました。以下に示すように、ユーザーにビデオウィンドウにROI(関心領域)を設定し、この領域でのみ作業するよう依頼します(理由は、フレーム全体を処理しないことやパフォーマンスの向上など)。(ユーザーは複数のROIを設定することができ、ユーザーはROIの高さを通常の車の約2倍に比例感で設定するように求められます。) これまでに、背景の更新、形態学的フィルター、しきい値処理、移動オブジェクトをバイナリイメージとして以下のような基本的な進歩を遂げました。 それらを行った後、私は最終的なしきい値処理された前景フレームの白ピクセルを数え、それが車であるかどうかを合計白ピクセル数をチェックすることで推定しようとしました(ROIの高さを知って静的計算により下限を設定しました) 。説明のために、サンプルグラフィックを描きました。 ご覧のとおり、白いピクセルを計算して、時間までに曲線を描くかどうかを確認し、車やノイズのようなものかどうかを判断するのは簡単でした。 問題 2台の車が同時にROIを通過するまで、私はかなり成功しました。私のアルゴリズムはそれらを1台の車として誤って数えました。私はこの問題にさまざまなアプローチを試みましたが、長い車のようにこれに似ていますが、満足のいく解決策が見つかりませんでした。 質問 このピクセル値カウントのアプローチでこのタスクを処理することは可能ですか?そうでない場合、何を提案しますか?

1
Opencv calcHistおよびcalcBackProject
画像処理について学びたいので、c ++とopencvの実験を始めました。 今、私の最初の演習は、calcHistとcalcBackProjectを使って皮膚検出器を作成することです。 しかし、私はいくつかのことを理解していません: バックプロジェクトの統計的解釈、および「バックプロジェクト」と呼ばれる理由 私はパラメータがどの範囲にあるのかをかなり理解していますcalcBackProject。しかし、私は本当にcalcHist機能の範囲パラメーターで立ち往生しています。 検出精度を上げるには、より多くのレベルでバックグロジェクションを使用するのが良いと思います。RGBの各チャネルとHSVの各チャネルで。しかしcalcBackProject、rgbとhsvの別々のチャネルの異なる結果をどのように組み合わせることができるかわかりません。 そして、私がうまく理解していないのは、これらの2つの方法で何をしているのかについての理論の欠如が原因だと思います(最初のポイントを参照)。分かりやすい英語で説明してください。

2
Log-Polar DFTベースのスケール不変の画像登録
Reddy Chatterjiの論文に記載されているように、位相相関を使用して画像のレジストレーションを行おうとしています。私の場合、画像は相対的にスケーリングおよび変換されます。 私が理解しているように、相対スケールを見つけるアルゴリズムは次のとおりです(参照:論文のフローチャート)。 F1 = DFT(I1) F2 = DFT(I2) H1 = Highpass(F1) H2 = Highpass(F2) L1 = LogPolar(Magnitude(H1)) L2 = LogPolar(Magnitude(H2)) PC = PhaseCorrelate(L1,L2) PM = norm(PC) R = IDFT(PhaseCorr/PM) P = Peak(R) Scale = LogBase^P[1] スケールは一見無意味な値を与えます(画像ごとに大きく異なり、決して修正されません)。 しかし、スケールを無視すると、同じ位相相関アプローチが変換にうまく機能します。ですから、対数極変換に問題があるのではないかと思います。これは私が翻訳のために解決した例です-左の画像はオリジナルで、右はトリミングされて翻訳されています-ソリューションは元の画像の上に表示されています: 対数極座標変換のために、私は第一極空間への変換 私^(ρ 、θ )= I( R + ρ COS(2 πθNθ)、 R - …



2
ハリスの角に配置された視覚的特徴のオクターブとサイズを推定する方法
私は現在、OpenCVによって提供されるいくつかの機能検出器のパフォーマンスを比較し、視覚的な機能マッチングの基礎として比較しています。 SIFT記述子を使用しています。MSER機能とDoG (SIFT)機能を検出するときに、(不正な一致を拒否した後)満足できる一致を達成しました。 現在、私はGFTT(追跡のための優れた機能-Harrisコーナー)でコードをテストして比較を行っています。また、最終的なアプリケーションでは、一連のGFTT機能が視覚的機能追跡プロセスから利用できるようになるためです。 私が使用しcv::FeatureDetector::detect(...)ているのはstd::vector<cv::KeyPoint>、検出された機能/キーポイント/関心領域で満たされたものです。構造にcv::KeyPointは、フィーチャの場所に関する基本情報、sizeおよびoctaveキーポイントが検出された情報が含まれています。 GFTTを使用した最初の結果は、さまざまなタイプの機能の典型的なパラメーターsizeとoctaveパラメーターを比較するまではひどいものでした。 MSERはサイズ(10〜40px)を設定し、オクターブを0のままにします DoG(SIFT)はサイズとオクターブの両方を設定します(サイズとオクターブの比率は20から40の間) パラメータは常にGFTTです:サイズ= 3、オクターブ= 0 これは、GFTT機能の主な目的が照合ではなく追跡のみに使用されていたためだと思います。このような小さな特徴から抽出された記述子は、小さな1ピクセルのシフトを含む多くのものに対して差別的で不変ではなくなるため、これはマッチング結果の質の低さを説明しています。 私は手動で設定する場合sizeのGFTTをする10から12まで、私が使用しているときに非常に似て良い結果、取得MSERかのDoG(SIFT)を。 私の質問は、「go-with-with-10-see-if-it-works」よりもsize(および/またはoctave)をどれだけ増やすかを判断するより良い方法はありますか?可能な場合は増加をハードコーディングせずにプログラムで決定したいのですが、新しい/ 増加 / 推定アルゴリズムの選択を裏付けるいくつかの確かな引数がある限り、ハードコーディングで問題ありません。sizesizesizesize

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-私の肌は白くありません。)

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

3
2Dから3Dへの変換は可能ですか?
ビデオから異なるフレームでの車の位置をキャプチャしました。 仮定車の(画像で私たちの方に来ているegleft側車)ビデオ・フレーム1の重心は、ビデオ・フレーム4でP(x1、y1)とQ(x2、y2)があります。 PおよびQポイントを3Dに表すことはできますか?正しいピクセル距離d(PQ)を計算し、最後に実際の距離を計算できるように 注:uはカメラが静止しており、地面から10 mの高さに配置されていると想定できます。u は、次の図も参照できる場合は、適切なデータを想定できます。

2
メインエッジを破壊せずにノイズを取り除く方法は?
私はプロジェクトに取り組んでいます。車からロゴを分割したいのですが、写真のサイズは3648 * 2432です。ロゴは赤い長方形で選択されています。 この領域を抽出して、グレーレベルに変換します。エリアのサイズは249 * 173です。次に、ヒストグラムイコライズを使用してエッジを強調します。最後に、適応型cannyを使用してエッジを見つけます。 ただし、結果は完璧ではありません。そこで、中央のフィルターを使って左の画像を滑らかにしました。結果は以下の通りです。 細かい部分を外します。 結果は改善されましたが、それも良くありません。また、バイラテラルフィルター、ミーンフィルター、ガウシアンフィルターを試してみましたが、あまり良くありません。ヒストグラムイコライズを通過した後、ノイズが強調されることを知っています。しかし、場合によっては、コントラストが低いため、このステップを調整して自分の写真を強調する必要があります。私に別のコメントを提供できる人はいますか?どうもありがとうございました。

1
カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか?
多くの場合、カメラにアクセスせずに処理するビデオのストリームがあります。カメラマトリックスにアクセスできることは、さまざまな処理技術にとって有益です。カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか? 私は、道路を記録している移動中の車に取り付けられた1台のカメラからのビデオストリームを持っています(したがって、地面に複数の平行線、レーンマーカーの角はありますが、円はありません)。これを真上から見下ろしたいのですが、カメラにアクセスできません。出来ますか?もしそうなら? 私は、OpenCVの学習:OpenCVライブラリのあるコンピュータビジョンブックから、次のマトリックスが必要であることを理解しています。 組み込み関数、および ねじれ .. cv2.undistort()画像にホモグラフィcv2.getPerspectiveTransform()を計算しcv2.warpPerspective()、最終的にトップビューを取得します。 質問 組み込み関数または歪み行列/パラメーターを計算/近似/推測するにはどうすればよいですか?すべてのパラメーターは重要ですか? 他のカメラ(OpenCVソースコードサンプルなど)からパラメーターをコピーしても問題ありませんか? 事前調査: OpenCV Pythonカメラキャリブレーションチュートリアル -カメラへのアクセスが必要 カメラのAutoCalibration-「平行線または形状が既知(例:円形)のオブジェクトの複数のセットが識別された場合、キャリブレーションが取得される可能性があります」 カメラのキャリブレーションに関連する回答を理解しようとしています[ 1 ] [ 2 ] [ 3 ]私の問題に対する回答を見つけようとしています。 何か案は?事前にあなたの助けを感謝します! 更新1:透視変換実験 入力画像の4点を使用getPerspectiveTransform(pts1,pts2)しdst = cv2.warpPerspective(img,M,(x,y), flags=flags)て照合し、一種のトップダウンビューを取得しようとしました。しかし、歪みを処理する方法がわかりません: ポイントの選択:最初に、入力を拡大し、レーンマーカー上の一致する外部ポイントを正確に選択してホモグラフィマトリックスを作成し、で透視変換画像をプレビューしましたwarpPerspective。車線が歪んでいるのを見ましたが、どれほどひどいのかわかりませんでした。アイデアを得るために、両端のデルタ(50px)フラットでさらにポイントを選択しました。これは私が得るものです: カメラにアクセスしなくても歪みを修正できますか?これを修正する他の方法はありますか? 使用する入力画像が少ない: 更新2:トップダウンビューでの非平行(散乱)オプティカルフロー これは、歪みやその他の原因によるものですか?:

1
OpenCV CannyとMatLab Cannyの違いは何ですか?
MatLab Canny(MLC)がOpenCV Canny(OCC)と比べて非常に異なる理由を誰かが知っていますか?ML-CはOCCよりも正確で接続されたエッジを提供しますが、それはどのようにして可能ですか?私が尋ねる理由は、MLコードのプロトタイプをC ++に実装する必要があり、OpenCVを使用したかったからです。私が試した限りでは、MLのコードをエクスポートすることは実際には不可能です。 敬具、

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