問題タブ [sobel]

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.

0 投票する
0 に答える
492 参照

python - Python OpenCV 3.1.0 エラー: Sobel Operator を使用しようとすると、画像データを float に変換できません

ここに示す例を使用しています: http://docs.opencv.org/3.1.0/d5/d0f/tutorial_py_gradients.html

Python で画像に対して Sobel Operator を使用して作業を開始します。しかし、実行するとエラーがスローされます: TypeError: Image data can not convert to float.

0 投票する
1 に答える
420 参照

python - Horizo​​ntal Sobel Mask を適用すると、画像が 180 度回転します

私の個人的なプロジェクトの 1 つで、次の水平エッジ マスクをグレースケール イメージに適用しようとしました。水平エッジ マスクを適用して、画像の水平エッジを検出しようとしています。

上記のマスクを使用してイメージ マトリックスを畳み込もうとすると、出力イメージが 180 度回転します。それが予期された動作なのか、それとも何か間違ったことをしているのかわからないのですか?

これが畳み込みのコードスニペットです。

元のグレースケール入力画像はこちら - ここに画像の説明を入力

生成される出力は次のとおりです。

ここに画像の説明を入力

0 投票する
0 に答える
533 参照

python - Matlab filter2 と opencv sobel は異なる画像勾配を生成します

画像内のパッチの方向勾配のヒストグラムを実装する必要があります (画像全体に対して 1 つの HOG ではなく、パッチごとに 1 つの HOG 特徴ベクトル)。このリンクでMatlabコードを使用し、コードをopencv pythonに変換しています。目的に合わせていくつかの変更を加えました。Matlab と Python コードの主な違いの 1 つは、各セルの勾配を取得する方法にありますが、Matlab では上記のリンクで使用されているようにfilter2を使用しています。 Opencv ではSobel演算子を使用します。私の問題は、これら 2 つの方法が生成する勾配が異なり、修正に苦労したことです。画像とカーネルの数値表現の両方を変更してみました。また、 opencvでfilter2Dを使用してみました。これもimfilterですMatlabで、しかし基本的にどれも機能しませんでした。filter2を使用して勾配を計算するための Matlab コードを次に示します。

これは、Sobel演算子を使用して記述した Python OpenCV バージョンです。

編集:投稿HEREに従って、Matlab でバイリニア メソッドを使用し、OpenCV で cv2.INTER_LINEAR を使用し、Matlab でアンチエイリアシングを無効にしましたが、サイズ変更された 2 つの画像は完全には一致しません。以下は、Matlab のテスト イメージのサイズ変更されたイメージの一部です。 ここに画像の説明を入力

これは OpenCV の同じ部分です。 ここに画像の説明を入力

2番目の編集:丸めが発生する方法がこの違いを引き起こすことがわかりました。そこで、OpenCV コードを次のように変更しました。

そしてMatlab:

そして今、両方とも同じ結果が得られます。 ここに画像の説明を入力

問題は導関数によるものだと思います。OpenCV で cv2.filter2D を確認しましたが、結果は異なります。誰かが問題の原因についてのヒントを教えてくれることを願っています。

0 投票する
2 に答える
63 参照

matlab - 画像オーバーレイの作成方法 エッジの色を変更する

イメージ オーバーレイの作成方法 エッジの色を変更: エッジを緑に変更するには、最初は「sobel」を使用しましたが、オーバーレイ部分にエラーがあります:「IMG はグレースケールまたは RGB 画像の配列である必要があります: writeVideo(writer,double(out));」なんで?