根の長さを測定する

  1. 根の長さを測定する
  2. 輪郭線検出に向けた下準備として2値化する
  3. findContours関数で輪郭を検出する
  4. 収縮処理

画像を表示する

最終的な目的は根の長さの測定ですが、まずは画像を表示することから始めましょう。これは画像へのパスは各々で画像の置いてある場所に合わせてください。

#include "opencv/cv.h"
#include "opencv/highgui.h"
using namespace cv;
int main(){
    Mat img = imread("root.jpg", IMREAD_UNCHANGED);
    imshow("IMAGE",img);
    waitKey(10000);
    return 0;
}

輪郭線検出に向けた下準備として2値化する

適当な閾値を設定して2値化し、さらに白黒を反転します。必要であればこのあと、膨張処理を施します。この処理によって細い根が途切れて繋がらずに検出されることを防ぎます。下の画像は2値化し、白黒反転させたものを表示したウィンドウのスクリーンショットです。

02-3

#include "opencv/cv.h"
#include "opencv/highgui.h"
using namespace cv;
int main(){
    Mat img = imread("root.jpg", IMREAD_UNCHANGED);
    Mat gray_img;
    cvtColor(img, gray_img, CV_BGR2GRAY);
    Mat bin_img;
    threshold(gray_img, bin_img, 0, 255, THRESH_BINARY|THRESH_OTSU);
    bin_img = ~bin_img;
    imshow("IMAGE",bin_img); //変更
    waitKey(10000);
    return 0;
}
1 2 3 4