私はそれにほぼ一定の線を持つ画像を持っています。私はモルフォロジー演算でアルゴリズムを使って画像からクリアします。つまり、形態学的な開閉は、隣の輪郭を単に溶かすのではなく、画像のエッジと線をマージすることです。私は形態学的操作で溶けた隣の輪郭だけを必要とし、後で私はイメージからラインの合併した平和をクリアすることができないので、そのラインがエッジとマージするのを避けるために必要です。画像とモーフを逆にしても問題は残ります。操作(画像の黒から白、白から黒の画像のピクセルで、開かずにクローズします)。モルフォロジー演算は画像のエッジとラインをマージする
これを停止する方法はありますか?
私は隣人の輪郭をマージするために、この操作を使用します。
Mat morphKernelClose = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new org.opencv.core.Size(25, 25));
Imgproc.morphologyEx(src, src, Imgproc.MORPH_CLOSE, morphKernelClose);
シンプルキャニー画像:MORPH_CLOSEを使用した後
を画像:
このエラーでは、最初に使用したのとは逆の2番目のモフォロジ操作を使用して、ラインを完全にクリアすることはできません(これらのマージされた部分は残っています)。
morphologyExのC++バージョンには、境界線を処理するためのパラメータがあります。それらがJava(?)バージョンにも存在するかどうかは不明です。 – Micka
ありがとうございます。Javaで関数のオーバーロードがあります: 'public static void morphologyEx(Mat src、Mat dst、int op、Mat kernel、Point anchor、int iterations、int borderType、Scalar borderValue)'、 "** borderType - Pixel Extrapolation method。詳細については、 "borderInterpolate"を参照してください。** "and" ** borderValue - 定数ボーダーの場合のボーダー値デフォルト値は特別な意味を持ちます。詳細については、 "createMorphologyFilter"を参照してください。適切な議論で国境との合併を操作するには?私は、この使用法を使用して説明するソースを見つけることができません。 –
私はそう思います。やってみなよ。 border_constantに設定して0に設定してください。 – Micka