今回の『画像のコントラストを上げる』は OpenCv CookBookでは取り上げていないテーマです。
グレースケール画像のコントラストを上げるメソッドは equalizeHistです。
static voidequalizeHist(Mat src, Mat dst)
Mat src : 入力になる 8ビットシングルチャネル画像(グレースケール)
Mat dst : 出力画像。入力画像とサイズ・タイプが同じになります。
実行結果 |
元画像をグレースケール化してequalizeHistでコントラストを上げました。
元画像
グレースケール化した画像
equalizeHistでコントラストを上げると
表の記事はハッキリ さらに裏の記事までが!!!
ここで円を検出してみると |
このハイコントラスト化した画像を 以前円を検出した引数と同じ引数で円を検出してみると。
Imgproc.HoughCircles(gray, circles, Imgproc.CV_HOUGH_GRADIENT, 2, 10, 160, 50, 10, 20);
以前ハイコントラストしないで 検出した円 に比べると取りこぼしはないが、余分な円も・・
ここで閾値を60にすると 漏れも無駄拾いもなくなった。
Imgproc.HoughCircles(gray, circles, Imgproc.CV_HOUGH_GRADIENT, 2, 10, 160, 60, 10, 20);
by Android2.2 with OpenCv 2.3.1 for Android |