答えて
(これは、下図の黄色でマークされているだけでなく、周辺白画素の領域ではありません)亀裂の影響を受けて全領域を見つけたいです最終的なバイナリイメージは、面積の近似計算のためのいくつかのトリックを試すことができます、それは非常に簡単なテクニックですが、あなたの問題のために動作する可能性があります。
1)すべての白いピクセルのxとyのインデックスを見つけて(MATLAB find()コマンドでそれを行います)、画像のすべての白いピクセルの重心であるxとy座標の平均を求めます。重心 などから全白画素の距離を見つける:
d = sqrt((x-xc).^2+(y-yc).^2)
上、あなたの白人の質量の中心に対応する全ての白人の距離のアレイを与える最大距離を見つけるととしてその距離を選択します仮想円の半径。今度はこのサークルの領域を見つけてください。
2)構造を異なるブロブとして取得する場合は、各ブロブのバウンディングボックスを抽出し、各バウンディングボックスの面積を計算し、すべての領域を追加します。
3)もう1つの方法は、ブロブの楕円領域を計算することです。あなたは長軸と短軸から得ることができ、すべての楕円の領域を追加します。
4)また、この問題に対処するための複雑な手法がいくつかあります(Convex Hullなど)。あなたはregionprops
から凸包を見つけることができます、これはあなたに各ブロブの凸包領域を与えるでしょう。
「クラックの影響を受けた領域」をどのように定義するかは100%わかりませんが、スケッチに基づいて、クラックイメージの凸包になる可能性があります。だから、エッジのバイナリイメージから始まる:あなたの画像の上部付近のそれらの直線が同様に亀裂としてカウントされるようにしている場合を除き
もちろん[X,Y] = find(edges);
[~,area] = convhull(X,Y)
、彼らが最初に何とかedges
から削除する必要があります。
- 1. 画像のマッピング領域
- 2. イメージの領域を見つける
- 3. Matlab:バイナリ領域の長軸を見つける
- 4. 描画領域に画像を描画
- 5. opencvで画像間の重複領域を見つける方法は?
- 6. 画像のクリック可能な領域
- 7. テキスト領域の背景画像
- 8. 画像のクリック可能な領域
- 9. 画像内のクリック可能な領域
- 10. 画像を大きな画像の小さな領域にスワップ
- 11. 画面領域の選択
- 12. ロケールで保護された領域
- 13. 計算画面領域エラー
- 14. D3:d3のジオポリゴンの領域を見つける
- 15. 特定の領域内の輪郭を見つける
- 16. キャンバスで2つの円の交差する領域にマークを付ける
- 17. イメージテンプレートの記憶領域を見つける方法は?
- 18. gmaps - 可視領域内の場所を見つける
- 19. Python OpenCV - バイナリイメージの黒い領域を見つける
- 20. 式ブレンドカラー領域
- 21. 表領域(オラクル)
- 22. 類似した色の領域を見つけるのにImagemagickを使う
- 23. WPF:画像内のすべての閉じた領域を見つける(C#またはVB)
- 24. Railsアプリケーションで管理領域を作成
- 25. GDBは与えられたメモリ領域のポインタを見つける
- 26. 入れ子にされた並列領域を避ける
- 27. テキスト領域のキャリッジリターン
- 28. パワーポイントのハイパーリンク領域
- 29. ガラス領域のコンポーネント
- 30. splitcontainerコントロールのスプリッタ領域でイベントを処理する
私は自分でそれを自分で行うことができると思います。エリアを選ぶための基準は何ですか? –
@David - Anderのコメントに基づいて拡張するために、以下を含む簡単なテストケースを提供することができますか?1) "画像"用の行列(例えば、白黒領域を表す10x10ピクセルの '論理配列')。 2)黄色の線を表す同じサイズのマトリックス。 3)1)&2)を使用して希望の出力? –
亀裂だけでなく、亀裂を囲む領域、つまり全ての亀裂からなる長方形の領域 –