緑色のピクセルを数える

画像を表示する

まず画像を表示することから始めましょう。これは画像へのパスは各々で画像の置いてある場所に合わせてください。

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

GBR座標からHSV座標に変換する

「緑色」というような色によって場合分けをして処理をしたい場合にはGBR座標は明るさなどの影響を受けやすいため不向きです。そこでHSV座標に変換してしまいます。ここで使う関数はcvtColor関数です。グレースケール化のときにも使った関数ですが、2つ目の引数をCV_BGR2HSVに変更することでBGRからHSVに変換することができます。

#include "opencv/cv.h"
#include "opencv/highgui.h"
using namespace cv;

int main(){
    Mat img = imread("newyork.jpg", IMREAD_UNCHANGED);
    Mat hsv_img;
    cvtColor(img, hsv_img, CV_BGR2HSV);
    return 0;
}