OpenCV Ubuntu C++ - Membuat trackbar pada frame HSV

Akhirnyaa..... Daritadi bikin program ini error terus, 2 jam baru nemu salahnya dimana. Oke nanti saya kasih tau salah saya dimana hehehe Kesempatan ini saya mau bahas pembuatan trackbar. Fungsinya? ya untuk menseleksi warna yang mau dipilih di frame HSV. Jika belum tau HSV itu apa, silahkan buka post sebelumnya. Penyeleksian warna cocok buat tracking warna nantinya. Nih nanti hasilnya seperti ini:


Itu saya tes untuk seleksi warna oranye. Tapi hasilnya masih tidak terlalu bagus, oleh karena itu nanti kita belajar filter, oke? Sekarang saya kasih code untuk trackbarnya dulu:
//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Trackbar 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 main()
{
    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

    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;
    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);

        createTrackbar("H_MIN: ","hsv",&h_min,255);
        createTrackbar("H_MAX: ","hsv",&h_max,255);
        createTrackbar("S_MIN: ","hsv",&s_min,255);
        createTrackbar("S_MAX: ","hsv",&s_max,255);
        createTrackbar("V_MIN: ","hsv",&v_min,255);
        createTrackbar("V_MAX: ","hsv",&v_max,255);

        imshow("hsv",hsv);
       

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

    return 0;
}
Setelah copas, langsung di compile dan execute aja :D Nah, sekarang kita bahas programnya.
Metodenya sama kaya sewaktu bikin frame HSV, tp ada tambahan beberapa baris:
        createTrackbar("H_MIN: ","hsv",&h_min,255);
        createTrackbar("H_MAX: ","hsv",&h_max,255);
        createTrackbar("S_MIN: ","hsv",&s_min,255);
        createTrackbar("S_MAX: ","hsv",&s_max,255);
        createTrackbar("V_MIN: ","hsv",&v_min,255);
        createTrackbar("V_MAX: ","hsv",&v_max,255);
Nah barisan kode diatas ini fungsinya untuk menambahkan trackbar pada frame. Kesalahan saya tadi itu berada di "hsv". Setiap membuat trackbar, pemasangan trackbar harus pada frame yang sedang dicapture (disini yang dicapture adalah frame hsv) atau dengan kata lain bukan membuat frame baru bernama trackbar. Begitu ceritanya.

Related Posts:

0 Response to "OpenCV Ubuntu C++ - Membuat trackbar pada frame HSV"