Android OpenCV ぼかし
Android-OpenCV 輪郭抽出(2) のおまけOpenCVで輪郭を抽出するときノイズなどが入ってしまい期待しているような輪郭が得られない場合があります。
画像をぼかすことでノイズの影響を減らすことができます。
画像をぼかす(平滑化)には以下の関数(OpenCVリファレンスを参考)
Imgproc.GaussianBlur(Mat src, Mat dst, Size ksize, double sigmaX, double sigmaY)
.Imgproc.medianBlur(Mat src, Mat dst, int ksize)
Imgproc.boxFilter(Mat src, Mat dst, int ddepth, Size ksize, Point anchor, boolean normalize, int borderType)
|
のいずれかを使うことでできます。
/*------------------------------------------------------------------------------------
Mat src;
Mat dst;
Imgproc.GaussianBlur( src, dst, new Size(5,3), 6, 4);
Mat image = dst;
List<MatOfPoint> contours;
Mat hierarchy;
Imgproc.findContours( image, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_TC89_L1);
--------------------------------------------------------------------------------------------------*/
これでノイズを軽減した画像から輪郭の抽出ができます。精度が上がりますが処理が多くなるので場合によって使い分けるほうがいいのかもしれません。
0 件のコメント:
コメントを投稿