2012-09-15 14 views
7

私の研究によると、画像を二値化した後、画像の隙間を埋めるために膨張と浸食を使うことができます。Androidの膨張と侵食

cvSmoothを使用する必要があるかどうかわかりません。

+0

私は知りませんAndroid上のOpenCVについては何でもありますが、スムージングは​​拡張や侵食などの形態学的操作とは関係がありません。あなたはおそらくcvTreshを使ってバイナリイメージを取得する必要があります(またはそれと同等のものがAndroid上にあります)。 – CTZStef

+0

CTZStef、私はバイナリイメージを取得するためにcvTreshを使う方法を知っていますか?これの前に、私はバイナリイメージを取得するために私自身の方法を使用し、効果は良くありません。 –

+0

私はあなたが必要とするすべてのものを見つけるでしょう。(例:ドキュメンテーション)http://code.opencv.org/projects/opencv/wiki/OpenCV4Android – CTZStef

答えて

14

Androidはほとんど同じ機能を持っているが、そうあなたがする必要があるすべては、この場合には、彼らが属するクラスImgprocを見つけることで、文書化C++/Pythonのがあります。

Imgproc.erode(mInput, mInput, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(2,2)));   

Imgproc.dilate(mInput, mInput, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(2, 2))); 
4

OpenCVにはerosiondilationがあります。あなたが "ギャップを埋める"ために探しているのはおそらく閉鎖と呼ばれるものです。すなわち膨張とそれに続く腐食です。これは、morphologyEx functionへの1回の呼び出しを使用して行うことができます。白い部分や黒い部分を侵食したいかどうかに応じて、「開口部」になる可能性があります。

+0

remi、私はあなたが正しいと思う、私は膨張とそれに続く侵食を使いたい。私はアンドロイドに新しいので、あなたはアンドロイドのためにそれをコードする方法の例を与えることができますか?ありがとう。 –

+0

remi、そしてあなたは、どのようにして白やブロック部分を腐食させるのかを教えてくれますか? –

+0

黒を腐らせる=白を広げる。あなたは簡単なテストをしなければなりません、あなたはそれを変更することはできません、私はOpenCV実装で決定されたことを覚えていません。 Androidのサンプルに関しては、私はC++/pythonバインディングのみを使用しますが、それは簡単ではありませんか? – remi

関連する問題