問題タブ [canny-operator]
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.
matlab - チェス盤の 2 つの線分の交点ピクセルの座標
私は、これらの線分がチェス盤の画像の垂直線である 2 つの線分の交点の座標を見つける必要があるプロジェクトに取り組んでいます。キャニーエッジ検出を使用した後、ハフ変換で線分を見つけます。各線の始点と終点を見つけました![ここに画像の説明を入力][1] しかし、これらの線の交点の座標を見つける方法がわかりません。
時間がなくなっています。誰でも、私を助けてください。私が持っているのは、以下のコードの結果だけです。私のコードがあります:
im = imread('IMG_2917.jpg');
イム = rgb2gray(イム);
q = 最大 (最小 (Im));
私 = 私 <= q;
A = ceil(最小(サイズ(I))/2);
B = ceil(最大(サイズ(I)));
形
シグマ=1;
BW = edge(I, 'キャニー', [], シグマ);
[H、T、R] = ハフ (BW);
P = houghpeaks(H,8,'threshold',ceil(0.25*max(H(:))));
x = T(P(:,2));
y = R(P(:,1));
Q(:,1) = R(P(:,1));
Q(:,2) = T(P(:,2))
lines = houghlines(BW,T,R,P,'FillGap',B,'MinLength',A);
imshow(BW)
持続する
max_len = 0;
k = 1 の場合: 長さ (行)
xy = [行(k).point1; 行 (k). ポイント 2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
disp(['line #' num2str(k) ':(' num2str(xy(1,1)) ',' num2str(xy(1,2)) ')' ';' ...
'(' num2str(xy(2,1)) ',' num2str(xy(2,2)) ')']);
len = ノルム (行 (k). ポイント 1 - 行 (k). ポイント 2);
もし (len > max_len)
max_len = len;
xy_long = xy;
終わり
終わり
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');
image-processing - さまざまなエッジ検出アルゴリズムの長所と短所
誰かが、画像内のエッジを検出するためのさまざまなエッジ検出アルゴリズムを、その使用の長所と短所とともに説明できますか? 私が興味を持った主なアルゴリズムのいくつかは次のとおりです。 Sobel FuzzyLogic Canny
前もって感謝します
c++ - 輪郭のピクセルポイントを取得するには?
輪郭内のピクセル ポイントを見つけるにはどうすればよいですか? 実行後に 5 つの輪郭を持つ画像があるとします。関数findContours
を使用して輪郭を描画できることはわかってdrawContour
いますが、輪郭を形成するピクセル ポイントを知る必要があります。
例えば:
私はこれを行い、この画像を取得しました。たとえば(x1,Y1)
、輪郭を形成するピクセルポイントを取得したいのですが、これらの情報を取得するに(x2,y2)
は...
どうすればよいですか? 、
c++ - メガネ検出
私がやろうとしているのは、眼鏡フレームの厚さを測定することです。フレームの輪郭の厚さを測定するというアイデアがありました (もっと良い方法でしょうか?)。ここまでメガネのフレームの輪郭を描いてきましたが、線が合わないところに隙間があります。HoughLinesP を使用することを考えましたが、これが必要かどうかはわかりません。
これまでのところ、次の手順を実行しました。
- 画像をグレースケールに変換
- 目/メガネ領域の周りに ROI を作成する
- 画像をぼかす
- 画像を膨張させます (薄いフレームのメガネを取り除くためにこれを行いました)。
- キャニーエッジ検出の実施
- 見つかった輪郭
結果は次のとおりです。
これまでの私のコードは次のとおりです。
次のステップがどうなるか、または上記で述べたように、HoughLinesP を使用する必要があるかどうか、およびその実装方法が完全にはわかりません。どんな助けでも大歓迎です!
c++ - OpenCV - 画像のエッジ強度の計算
私は画像処理が初めてで、画像に存在するエッジの強度を計算する必要があります。画像があり、その画像にぼかし効果を追加する状況を想定します。この 2 つの画像のエッジの強さは異なります。両方の画像のエッジ強度を別々に計算する必要があります。
これまでのところ、以下のコードを使用して画像のエッジ検出を取得しました。
このエッジ画像の強度を計算する方法はありますか..?
java - キャニーのアルゴリズム: ヒステリシスの誤動作
私はキャニーのアルゴリズムを書いていますが、ヒステリシスに問題があるようです。しきい値は処理されているように見えますが、ヒステリシスがまったく機能していないようです。メソッドと同様に、何らかの奇妙な理由でweakを削除します。助けてください!
Low @ 10 High @ 75 ヒステリシスの後、問題 A により、performHysteresis メソッドでエッジが強化されませんでした。B 弱い非エッジは、メソッド removeWeak では削除されません。
メソッドのソース コードは次のとおりです。
java - OpenCV Android、最大の輪郭を描く、何かがおかしい
最大の輪郭を描画しようとしています。リアルタイムで作業して、各カメラ フレームを処理しています。私の入力画像は手で作られます。いくつかの制約があります - 黒の背景、鏡面反射光なし。
最大の輪郭が下の画像にできるだけ近いと思います
私のコードは次のとおりです。オンラインで入手できる多くのサンプルを参照しましたが、コードに問題はないとほとんど考えています。
今、私が得たのはこれのほんの一部です。私の現在の理解では、OpenCV 自体が大きな連続した輪郭を検出できないということです。以下の画像を参照してください。
これだけでなく、他の画像でもテストしましたが、どういうわけか大きな大きな連続した輪郭を取得できません。
最初にキャニーを適用するのは間違っていますか? より良いテクニックはありますか?手の輪郭の輪郭を取得したい。将来的には、保存されている同様の等高線データベースと比較したいと考えています。私は正しい軌道に乗っていますか?
c++ - 画像の特定の要素を照合します。既知の形状 OpenCV C++
この質問に対する答えが得られなかった後、私はいくつかの興味深い解決策に出くわしました。
この投稿の Robust Matcher と、この投稿のCanny Detectorです。
をセットアップし、Canny Edge Detector
そのドキュメントを参照して、リンクした最初のページに示されているものを実装した後Robust Matcher
、いくつかのロゴ/衣服の画像を取得し、2 つを組み合わせてある程度の成功を収めました。
しかし、他の非常によく似たケースでは、それはオフでした:
上記と「まったく」同じデザインの別のロゴ画像、同じ服の画像。
それで、与えられた画像の特定の領域を定義する画像上のいくつかの特定のポイントを一致させる方法はありますか?
したがって、画像を読み込んでからすべてのマッチングを行う代わりに、keypoints
「悪い」keypoints
などを破棄します。ある画像が別の画像とどのように関連しているかをシステムに認識keypoint
させ、ある画像で正しい一致を破棄することは可能ですか?隣り合っているのに、全く別の場所にいる?
(左の画像ではライトブルーとロイヤルブルーの「マッチ」が隣り合っていますが、右の画像では完全に別の部分でマッチしています)
編集
ミカのために
(ペイントで追加された)ホワイトボックスの中央に「長方形」が描かれています。
ホモグラフィ出力
わずかに異なる入力シナリオ (絶えず変化するため、上記の画像を完全に繰り返すための正確な条件を把握するには時間がかかりすぎます) が、結果は同じです:
問題の画像: