OpenCV Ubuntu C++ - Menampilkan gambar

Astagaaa, yang dasar-dasar malah belum di post -____- Sori ya kalo ada yang masih bingung cara nampilin gambar di opencv. Soalnya dari kemarin-kemarin kan kita belajar olah video hehehe Langsung aja saya kasih hasilnya:





Berikut codingan nya:


//BISMILLAH - Dzikri Purnama - Free to Copy&Paste

//Displaying Image
#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()
{
  Mat img = imread("/home/alfarobi/OpenCv/play/exe/tennis.jpg", CV_LOAD_IMAGE_UNCHANGED);

if (img.empty()){
cout << "Error : Image cannot be loaded..!!" << endl;
        return -1;
}

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);"
imshow("MyWindow", img);

waitKey(0);

     destroyWindow("MyWindow");

return 0;
}
Kalo udah langsung di compile and execute aja. Khusus untuk baris:
  Mat img = imread("/home/alfarobi/OpenCv/play/exe/tennis.jpg", CV_LOAD_IMAGE_UNCHANGED);
 Bagian yang saya bold merupakan letak direktori file gambar berada. Sudah dulu, saya harap mungkin agan-agan sekalian sudah mengerti :D kalo belum ngeh, tanya lewat comment saja.

Related Posts:

OpenCV Ubuntu C++ - Operasi morphology: erode dan dilate

Erode dan Dilate merupakan dua jenis fungsi yang sangat berguna dalam computer vision. Erode dan Dilate merupakan bagian dari operasi morphology. Salah satu kegunaan dari erode dan dilate adalah menghilangkan noise (titik-titik tidak perlu) di sebuah frame gambar / video ketika sedang melakukan proses penyeleksian warna. Biar lebih menarik, saya akan tampilkan perbedaan hasilnya terlebih dahulu:
Tanpa operasi morphology:

Dengan operasi Erode: 

Dengan operasi Dilate:

Sudah kelihatan kan bedanya? Dengan menggunakan operasi erode, maka titik-titik noise akan dihilangkan sesuai besarnya matrix yang digunakan pada operasi erode. Sedangkan jika menggunakan operasi dilate, maka titik-titik noise pada frame akan dibuat lebih besar sesuai besarnya matrix yang digunakan. Sekarang kita ke bagian programmingnya.

Related Posts:

Ganti repository ubuntu ke server lokal

Ngapain ganti-ganti repository? Logika nya gini, kalo misal anda update ubuntu anda (sudo apt-get update), maka sistem akan mengambil data lewat server ubuntu di Luar Negri. Kan kita tau sama tau, proses catch data yg servernya jauh kalo pake koneksi indonesia yang lambat kan prosesnya bakal lama. Nah fungsi nya ganti repository lokal adalah biar nanti catch datanya ke server Indonesia. Alhasil nanti kalo update ubuntu lagi ga lama-lama banget lah.

Disini, saya menyarankan make repository lokal dari UI aja ya. Kenapa? karena yaa saya makenya itu hahaha Oke saya jelasin caranya:
1. Buka File Manager. Buka folder /etc/apt/.
2. Bikin Backup-an source.list seperti contoh: (file backup bernama source.list.save)

3. Kalo udah, buka file source.list
4. Tambahkan beberapa baris repository di bagian paling bawah file tadi.

Repository lokal:
deb http://kambing.ui.ac.id/ubuntu/ precise-proposed main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise main restricted universe multiverse
contoh:

5. Kalo udah, di save.
6. Kemudian update ulang ubuntu nya dengan ketik di terminal:
sudo apt-get update
7. Bergembiralah, karena repository anda sudah pindah menjadi repository lokal :)

Related Posts:

OpenCV Ubuntu C++ - Membuat filter pada frame

Halo selamat siang fellas. hahaha Sesuai janji saya pada post sebelumnya, saya mau share program mengenai filter pada frame. Gunanya apa ya? Salah satunya bisa untuk mengurangi noise. Kok bisa?? ya coba aja :D Ini saya buatin program filter blur, tepatnya make jenis gaussian blur. Berikut hasilnya:

Sebelum adanya filter:
 
Setelah adanya filter:

Mulai ngerti kan maksudnya?? hehehe sebenernya ada banyak jenis filter, ada median blur, billateral filter, dan semacamnya. Itu terserah anda mau pakai yang mana (sesuai kebutuhan saja). Berikut codenya:

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Filter Gaussian blur

//#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;

        GaussianBlur(frame, frame, Size(11,11),2,2);
        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;
}
Langsung compile dan execute saja. Btw, untuk filter lumayan mudah.

Related Posts:

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.

Related Posts:

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:

Related Posts:

OpenCV Ubuntu C++ - Mengubah Video RGB ke dalam bentuk GREY

Tengah malem susah tidur nih,, gara2 ketiduran abis maghrib. Daripada ga ada kerjaan, ini mau post codingan baru. Simple aja, mengubah hasil video yang masih dalam bentuk RGB ke bentuk GREY (abu-abu). Fungsinya? cuma untuk mengubah beribu2 jenis warna menjadi antara putih dan hitam. Jadi ada abu-abu, abu-abu rada gelap, abu-abu rada putih, dsb. Langsung aja yaa.. Coba copas code ini ke Qt atau apa aja (sebagai IDE) lalu save dengan ekstensi .cpp . Nanti abis itu di compile langsung aja lwt terminal, make command "sudo make clean all", jangan lupa Makefile nya harus disesuaikan dengan file .cpp nya. Nanti hasilnya jadi seperti ini:


Ini code nya:

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//BGR to GREY

//#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()
{
    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, grey;

    namedWindow("camera");
    namedWindow("grey");

    while (true)
    {
        cap>>frame;

        cvtColor(frame,grey,CV_BGR2GRAY);
        
        imshow("camera",frame);
        imshow("grey",grey);
       
        if(waitKey(20) != -1)
            break;
    }

    return 0;
}

Codenya lumayan gampang kan? Mari kita bahas isi kodenya:

Related Posts:

OpenCv Ubuntu C++ - Menampilkan video melalui webcam

Selamat siang, post ini akan membahas tentang menampilkan jendela webcam menggunakan library opencv. Sebelumnya, anda harus menginstall OpenCV, caranya di sini. Seperti ini hasilnya:


Langsung saja ke kode nya ya :)

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Open Camera

//#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()
{
    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, thresh, hough, gray;

    namedWindow("camera");

    while (true)
    {
        cap>>frame;
        imshow("camera",frame);

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

    return 0;
}

Setelah itu save, kemudian di compile menggunakan command pada terminal, yaitu: sudo make clean all kemudian jalankan programnya.

Penjelasannya codingan di atas adalah sebagai berikut:

Related Posts:

Tutorial install OpenCV Ubuntu

Jadi, hal yang harus dilakukan terlebih dahulu untuk belajar OpenCV, yaitu:
- Install library OpenCV
- Install Qt Creator (sebagai IDE)

1. Install library OpenCV bisa dilakukan melalui Ubuntu Software Center.
Silahkan search "libopencv" pada kotak search di Ubuntu Software Center. Kemudian silahkan anda install "Development files for opencv - libopencv-dev"



2. Kemudian install QtCreator, bisa diinstall melalui Ubuntu Software Center juga. Silahkan search "qtcreator" pada kotak search di Ubuntu Software Center. Kemudian install.

Jika keduanya sudah, maka kita dapat memrogram Computer Vision menggunakan library OpenCV dengan memakai IDE Qt Creator. Sebenarnya IDE lain selai Qt boleh digunakan, tp karena saya memakai Qt, maka ya saya merekomendasikannya. Hehehe

Hal selanjutnya adalah menyiapkan file "makefile". File tersebut digunakan untuk mengeksekusi file .cpp nantinya lewat terminal.

Silahkan buat file baru dengan nama "Makefile" (tanpa ekstensi dan kutip).
Kemudian copas code dibawah ini:
 ###############################################################
# Makefile OpenCV ###############################################################

TARGET = play

CXX         = g++
CFLAGS        = -Wall -O2
CLIBS         = -lopencv_core -lopencv_highgui -lopencv_imgproc

all: $(TARGET)

clean:
    rm -f $(TARGET) core *~ *.so *.lo

$(TARGET): play.cpp
    $(CXX) $(CFLAGS) play.cpp $(CLIBS) -o $(TARGET)

Kemudian simpan. Mari kita bahas isi dari kode Makefile tersebut:

TARGET = play --> //nantinya digunakan untuk eksekusi program (menjalankan program), jadi ketika ingin menjalankan program, maka ketik command pada terminal "sudo ./play" (tanpa kutip). Namun sebelumnya perlu di build+compile terlebih dahulu file .cpp nya.

 $(TARGET): play.cpp
 $(CXX) $(CFLAGS) play.cpp $(CLIBS) -o $(TARGET) --> //play.cpp merupakan file yang akan di build+compile, nama file play.cpp dapat diganti sesuai nama file program yang anda buat. Untuk mengcompile program yang anda buat, anda perlu mengketik pada terminal, "sudo make clean all" (tanpa kutip). Jika berhasil, maka program dapat anda jalankan dengan command "sudo ./play" (tanpa kutip & sesuai nama TARGET yang anda inginkan)
Ohya, jangan lupa. File Makefile dengan file program harus dalam 1 folder.
Contoh:


Sudah selesai... Tutorial berikutnya adalah memprogram OpenCV.
Terima kasih telah membaca. Kalo kurang mengerti, bisa tanya lewat comment.

Related Posts:

Peresmian blog baru

Skip by skip..

Kenalkan, saya Dzikri Purnama. Kuliah di UGM, tepatnya sih di Program studi Elektronika dan Instrumentasi atau sebutan kerennya ELINS. Ya, saya angkatan tua. Eh, maksud saya angkatan 2011. Doain ya, moga moga november 2015 udah wisuda hehehe

Niatnya bikin blog ini untuk membuat catatan tutorial program. Jadi, ketika mau bikin program lagi, bisa liat blog ini. Blog ini mungkin sederhana, karena emang niatnya dibuat jadi tutorial. Jadi, silahkan membaca, kalau pusing atau tidak nyangkut sama yang saya bahas, yaa mau gimana lagi hehehe tulis di komentar saja, apa yg tidak dimengertinya, atau bisa di email ke dzikriugm@gmail.com

Selamat membaca!
Terima kasih.

Related Posts: