Instalasi OpenCV 2.3.1a, ffmpeg 0.8.15, dan libv4l 0.8.6 di Ubuntu 12.04 dengan Kompilasi Manual

Bismillahirrahmanirrahim.

utilities-terminalSaya baru tahu pagi ini bahwa OpenCV kemarin yang saya build bersama ffmpeg  kekurangan dukungan webcam. Jadi, program C++ seperti apa pun yang saya kompilasikan tidak akan dapat mengakses webcam (pesan error-nya antara Segmentation Fault sampai No Camera Detected). Padahal, instalasi OpenCV pertama saya jelas-jelas mampu mengakses webcam. Ini terjadi karena instalasi OpenCV kemarin itu belum termasuk konfigurasi pustaka v4l (Video For Linux) diaktifkan. Pustaka inilah yang bertugas mengakses webcam yang terpasang di laptop. Jelas saja kode-kode OpenCV saya tidak dapat mengakses webcam karenanya. Pagi ini saya berhasil melakukan build ulang OpenCV 2.3.1a dengan ffmpeg 0.8.15 dan libv4l 0.8.6 dengan CMake kembali. Total waktu yang diperlukan untuk itu adalah 22 menit saja (10.24 — 10.46 WIB). Berikut catatan saya.

1. Persiapan Seluruh Dependensi

Semuanya sama persis dengan instalasi OpenCV kemarin. Perbedaannya adalah, libv4l memerlukan libjpeg-dev. Maka sebelum libv4l diinstal, libjpeg-dev harus diinstal terlebih dahulu. Lihat langkah-langkah di bawah.

2. Instalasi Pustaka libjpeg-dev


sudo apt-get install libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev

Selesai.

3. Instalasi Pustaka v4l (Unduh, Ekstrak, Build)

Folder penyimpanan juga sama persis dengan instalasi OpenCV kemarin.


wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.8.tar.bz2
tar -xfv v4l-utils-0.8.8.tar.bz2
cd v4l-utils-0.8.8
make
sudo make install

Selesai.

4. Instalasi OpenCV


tar -xvf OpenCV-2.3.1a.tar.bz2
cd OpenCV-2.3.1/
mkdir build/
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE ..
make
sudo make install

Perhatikan dulu opsi v4l yang tercantum ketika kita memanggil CMake, pastikan kalau statusnya adalah yes. Lihat skrinsot berikut.

kde-saya102

Hasil

Cara memeriksa status instalasi OpenCV dan lain-lain sudah dijelaskan di tulisan sebelumnya.

Kode Sumber Program


// latihan_opencv_3_webcam.cpp 
// http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=video%20capture#VideoCapture
// kata kunci: opencv video capture
// kata kunci: opencv camera capture
// diunduh pada Friday, June 27, 2014 02:33 AM
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <stdlib.h>
#include <fstream>

// namespace untuk cv; karena sebetulnya tidak ada VideoCapture, Mat, imshow(), dan waitKey()
// yang ada adalah cv::VideoCapture, cv::Mat, cv::imshow(), dan cv::waitKey()
// ditulis pada Friday, June 27, 2014 07:42 PM
// untuk memahaminya, bacalah http://www.cplusplus.com/doc/tutorial/namespaces/
using namespace cv;

int main(int, char**)
{
 // buka kamera default yakni nomor 0
 // ganti nomornya dengan 1 atau 2 jika kamera berada di posisi lain
 VideoCapture cap(0); 
 char s[1];

while(true)
 { 
 // deklarasi objek frame dari kelas Mat
 Mat frame;
 IplImage frim;
 
 // objek video dari kamera dipasangkan ke dalam frame
 cap >> frame; 
 //cap >> frim;
 
 // fungsi imshow() menayangkan objek Mat yang sudah berisi objek video kamera
 // argumen pertama adalah string untuk judul jendela
 // argumen kedua adalah objek Mat
 imshow("Kamera", frame);
 sprintf(s, "frame.jpg");
 //cvSaveImage(s,frim);
 
 // fungsi waitKey() (didefinisikan dalam header highgui) dibutuhkan oleh imshow() (yang juga dari highgui)
 // tanpa waitKey(), imshow() tidak akan melakukan window event semisal redraw, resize, input event, dan sebagainya
 // argumen angka di dalam waitKey menentukan berapa milisekon delay untuk key event yang dibutuhkan oleh imshow()
 // panggillah walau hanya untuk 1 milisekon
 // singkatnya, ini sepele tetapi wajib ada
 // sumber 1: http://stackoverflow.com/questions/12452118/what-does-waitkey-30-mean-in-opencv
 // sumber 2: http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey
 if(waitKey(3) >= 111) break;
 }
 
 return 0;
}

kde-saya116

Kesimpulan

  1. Instalasi OpenCV dengan build bersama ffmpeg semata tanpa libv4l tidak dapat menjadikan program OpenCV mampu mengakses webcam laptop.
  2. Jika program OpenCV diharapkan mampu mengakses webcam, maka OpenCV harus di-build ulang dengan libv4l diaktifkan.
  3. Jika program OpenCV diharapkan mampu mengakses video sekaligus mengakses webcam, maka OpenCV harus di-build ulang dengan ffmpeg dan libv4l diaktifkan.
  4. libv4l baru dapat di-build jika paket libjpeg-dev sudah diinstal di Ubuntu 12.04.
Iklan

7 thoughts on “Instalasi OpenCV 2.3.1a, ffmpeg 0.8.15, dan libv4l 0.8.6 di Ubuntu 12.04 dengan Kompilasi Manual

  1. kalau salah satu dependency tidak terinstal apakah berpengaruh? saya sudah coba install dan hanya dependency libfaac-dev yang tidak bisa diinstal, apakah tidak apa jika saya lanjut ke step selanjutnya? atau libfaac-dev memang harus diinstal?

Mohon jangan gunakan emotikon:

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s