OpenCV Ubuntu C++ - Seleksi warna RGB ke HSV

Baru bangun tidur nih hehehe mending nulis aja ah... Jadi begini, kemarin kan udah bisa convert RGB ke GREY (abu2) sekarang kita coba convert RGB ke HSV (Hue Saturation Value). Emang biar apa??? Nanti tujuan nya adalah untuk menyeleksi warna. Jadi warna yang ditampilkan di frame ya sesuai yang diinginkan. Kaya ini hasilnya:

Langsung aja ya :) Copas aja code nya:
//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//BGR to HSV

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;
int h_min = 4, h_max = 78, s_min = 50, s_max = 255, v_min = 20, v_max = 255; //oranye
//int h_min = 95, h_max = 100, s_min = 130, s_max = 255, v_min = 150, v_max = 255; //biru
//int h_min = 4, h_max = 24, s_min = 38, s_max = 255, v_min = 150, v_max = 255; //kuning

int main()
{
    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);

    Mat frame, hsv, grey;
    namedWindow("camera");
    namedWindow("hsv");


    while (true)
    {
        cap>>frame;
        imshow("camera",frame);
        cvtColor(frame,hsv,CV_BGR2HSV);           inRange(hsv,Scalar(h_min,s_min,v_min),Scalar(h_max,s_max,v_max),hsv);
        imshow("hsv",hsv);

        if(waitKey(20) != -1)
            break;
    }

    return 0;
}
Kalo udah bisa di compile dan execute buat liat hasilnya :D
Sekarang mari kita bahas isi programnya:

int h_min = 4, h_max = 78, s_min = 50, s_max = 255, v_min = 20, v_max = 255; //oranye
//int h_min = 95, h_max = 100, s_min = 130, s_max = 255, v_min = 150, v_max = 255; //biru
//int h_min = 4, h_max = 24, s_min = 38, s_max = 255, v_min = 150, v_max = 255; //kuning
Kode diatas ini gunanya untuk klasifikasi warna, liat aja itungan nilai orange, biru sama kuning kan beda-beda.
 cvtColor(frame,hsv,CV_BGR2HSV);           inRange(hsv,Scalar(h_min,s_min,v_min),Scalar(h_max,s_max,v_max),hsv);
 imshow("hsv",hsv);
Kode diatas gunanya untuk convert dari RGB ke HSV, kemudian memberikan range warna HSV nya. Selanjutnya frame HSV ditampilkan.

Nah jadi begitu cara kerjanya. Ohya, misal mau bikin seleksi warna merah, hijau, dll nilai HSV nya berapa? Oke abis ini saya akan bahas pembuatan trackbar. Gunanya untuk mengatur range warna yang diinginkan. Trackbar juga sangat berguna untuk melakukan kalibrasi warna. Tunggu saja ya :)

Related Posts:

0 Response to "OpenCV Ubuntu C++ - Seleksi warna RGB ke HSV"