問題タブ [morphological-analysis]
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 - bwlabel を使用して最大接続オブジェクト/コンポーネントをカウントする
バイナリ イメージがBW
あり、1 の連結領域を見つけるために使用bwlabel
しているとします。この結果の最大のグループ (0 ではない) と、このグループが画像内にある場所を見つけたいとします。これを行う方法?
matlab - Matlab ordfilt2 または加重局所最大値の代替
Matlab でベクトルの重み付き最大値を計算したいと思います。加重最大値については、次のことを意図しています。
2*N+1
重みのベクトルとW={w[-N], w[-N+1] .. w[0] .. w[N]}
入力シーケンス を指定するとA
、重み付き最大値は次のベクトル M
になり ます。m[i]=max(w[-N]*a[i-N], w[-N+1]*a[i-N+1], ... w[N]*a[i+N])
たとえば、ベクトルA= [1, 4, 12, 2, 4]
と重みが与えられたW=[0.5, 1, 0.5]
場合、重み付けされた最大値は になりますM=[2, 6, 12, 6, 4]
。
これは を使用して実行できますordfilt2
が、ordfilt2
重みは乗算ではなく加算として使用されます。
私は実際に4Dマトリックスに取り組んでいますが、4Dウェイトマトリックスは分離可能であるため、どの1Dソリューションも機能します。
私の現在の解決策は、入力配列のシフトされたコピーを生成A
し、シフトに従ってそれらに重みを付け、すべての配列を最大化することです。シフトは使用して実行circshift
され、プロセスのボトルネックです。シフトされた行列を「手動で」インデックス付けして生成すると、さらに遅くなることが判明しました。
より効率的なソリューションを提案できますか?
編集: 正の A の場合M=exp(ordfilt2(log(A), length(W), ones(size(W)), log(W)))
、仕事をしますが、上記の解決策よりも時間がかかりますcircshift
。私はまだより効率的なソリューションを探しています。
matlab - Matlab でのマルチスケール形態学的画像の単純化
こんにちは、私は現在、Dorini で論文「Multiscale Morphological Image Simplification」の SMMT オペレーターを使用しようとしています。購読しないとページにアクセスできないため、関連する詳細をここに投稿します。
関連記事の一部を画像として掲載していますのでご了承ください。stackoverflow.com での方程式の書き方がわかりません。この SMMT 演算子を画像処理の前処理ステップとして使用したいと考えています。私が書き留めたコードを以下に示します。
コードの結果は次のようになります: (紙から):
。
私の結果はこれです:- .
私の実装は正しいですか?? さらに改善できますか?? どんな提案も役に立ちます。助けてくれてありがとう!! 詳細については、Dorini Free Accessを参照してください。
c++ - OpenCV Watershed : 4 ポイント接続
OpenCVで流域のコードを書いています。
しかし、分水界の境界を 8 点ではなく 4 点で接続したいと考えています。
現在、これはインターフェースです:
誰にもこれに対する解決策はありますか?
また、自動オーバーセグメンテーションのためにopencvで形態学的流域を実行する簡単な方法はありますか?現在のものはユーザー入力を受け取りますか?
matlab - きれいなモルフォロジー演算
MATLAB のドキュメンテーションでは、きれいなモルフォロジー演算をここで見ることができます。問題は、私がそれを使用できないことです。構造化要素の使い方はわかっているのですが、例えばimclean(img,SE)
やclean(img,SE)
と入力すると、未定義関数としてエラーが発生します。関数はどのように使用する必要がありますか?
matlab - MATLAB でサイズ nxn の近傍を使用したグレースケール イメージの形態学的膨張
Dilation プロセスは、画像 A に構造要素 B を配置し、畳み込みと同様の方法で画像上をスライドさせることによって実行されます。
グレースケール画像の数学的形態膨張の背後にある主な概念を理解していますが、まだ1つの質問があります:
構造要素の値をユーザーが選択できないようにすることはできますか? つまり、構造要素の要素を指定せずに、サイズと形状を選択するだけで、画像の膨張処理を実行できますか?
より正確にするために、例を使って私の質問をよく説明します。サイズ 8 x 8 の近傍によって処理される (この場合は膨張する)I
サイズのグレースケール画像を想定160 x 160
します。この近傍の要素を指定しなかったので、それらの要素は画像自体からのものです。たとえば、以下の matlab コードを書きました。
関数max_filterは次のとおりです。
それはまだ形態学的拡張操作と見なされますか? サイズ 8 x 8 の構造要素を使用したことを思い出してください。
matlab - 時系列のギャップを埋める
右側のブロック (2 つの小さなブロックで構成される) をマージして、左側の 2 つのブロックとまったく同じように見せたいと考えています。形態学的操作について考えていましたが、これらは元の形状を変更する傾向があり、精度が失われます。他に役立つ信号処理ツールはありますか? データは時系列で表示されます。