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
Setelah copas, langsung di compile dan execute aja :D Nah, sekarang kita bahas programnya.
//#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;
}
Metodenya sama kaya sewaktu bikin frame HSV, tp ada tambahan beberapa baris:
createTrackbar("H_MIN: ","hsv",&h_min,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.
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);
0 Response to "OpenCV Ubuntu C++ - Membuat trackbar pada frame HSV"
Post a Comment