257 lines
7.8 KiB
Markdown
257 lines
7.8 KiB
Markdown
# Panduan Instalasi OpenCV dari Source
|
|
|
|
Membangun OpenCV dari source memberikan Anda kendali penuh atas fitur, optimasi, dan dependensi yang diinginkan. Berikut panduan lengkapnya.
|
|
|
|
---
|
|
|
|
## 📋 Prasyarat
|
|
|
|
Sebelum memulai, pastikan tools berikut sudah terinstall di sistem Anda:
|
|
|
|
| Komponen | Minimal Version | Perintah Install (Ubuntu/Debian) |
|
|
|----------|----------------|----------------------------------|
|
|
| C++ Compiler | GCC/G++ atau Clang | `sudo apt-get install build-essential` |
|
|
| CMake | 3.9 atau lebih tinggi | `sudo apt-get install cmake` |
|
|
| Git | - | `sudo apt-get install git` |
|
|
| wget & unzip | - | `sudo apt-get install wget unzip` |
|
|
|
|
---
|
|
|
|
## 🚀 Langkah-Langkah Instalasi
|
|
|
|
### Langkah 1: Install Dependensi OpenCV
|
|
|
|
Dependensi ini diperlukan untuk mendukung berbagai fitur OpenCV seperti pemrosesan video, GUI, dan optimasi .
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y \
|
|
build-essential cmake git pkg-config \
|
|
libgtk2.0-dev libgtk-3-dev \
|
|
libavcodec-dev libavformat-dev libswscale-dev \
|
|
libv4l-dev libxvidcore-dev libx264-dev \
|
|
libjpeg-dev libpng-dev libtiff-dev \
|
|
libopenexr-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|
libdc1394-dev libtbb-dev libeigen3-dev \
|
|
python3-dev python3-numpy \
|
|
libatlas-base-dev gfortran
|
|
```
|
|
|
|
> **Catatan:** Jika Anda ingin menggunakan GTK3 untuk GUI, gunakan `libgtk-3-dev`. Untuk kompatibilitas maksimal, install keduanya .
|
|
|
|
### Langkah 2: Download Source Code
|
|
|
|
Buat direktori kerja dan download source OpenCV beserta modul tambahan (contrib) .
|
|
|
|
```bash
|
|
# Buat direktori kerja
|
|
mkdir -p ~/opencv_build && cd ~/opencv_build
|
|
|
|
# Download OpenCV main repository
|
|
git clone --branch 4.x https://github.com/opencv/opencv.git
|
|
|
|
# Download OpenCV contrib modules (opsional, untuk fitur tambahan seperti SIFT/SURF)
|
|
git clone --branch 4.x https://github.com/opencv/opencv_contrib.git
|
|
```
|
|
|
|
> **⚠️ PENTING:** Pastikan branch/version `opencv` dan `opencv_contrib` sama untuk menghindari masalah kompatibilitas .
|
|
|
|
### Langkah 3: Buat Build Directory
|
|
|
|
```bash
|
|
cd opencv
|
|
mkdir -p build && cd build
|
|
```
|
|
|
|
Membuat direktori build terpisah menjaga source code tetap bersih dan memudahkan jika ingin rebuild .
|
|
|
|
### Langkah 4: Konfigurasi dengan CMake
|
|
|
|
Ini adalah langkah paling krusial. CMake akan memeriksa dependensi dan menyiapkan file untuk proses kompilasi .
|
|
|
|
**Konfigurasi dasar (minimal):**
|
|
```bash
|
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
|
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
|
|
-D OPENCV_GENERATE_PKGCONFIG=ON \
|
|
..
|
|
```
|
|
|
|
**Konfigurasi lengkap (dengan Python dan optimasi):**
|
|
```bash
|
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
|
-D INSTALL_PYTHON_EXAMPLES=ON \
|
|
-D INSTALL_C_EXAMPLES=ON \
|
|
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
|
|
-D WITH_TBB=ON \
|
|
-D WITH_V4L=ON \
|
|
-D WITH_OPENGL=ON \
|
|
-D WITH_GSTREAMER=ON \
|
|
-D BUILD_EXAMPLES=ON \
|
|
-D OPENCV_GENERATE_PKGCONFIG=ON \
|
|
-D OPENCV_ENABLE_NONFREE=ON \
|
|
-D BUILD_opencv_python3=ON \
|
|
-D PYTHON3_EXECUTABLE=$(which python3) \
|
|
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
|
|
-D PYTHON3_LIBRARY=$(python3 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython3.so \
|
|
-D PYTHON3_NUMPY_INCLUDE_DIRS=$(python3 -c "import numpy; print(numpy.get_include())") \
|
|
..
|
|
```
|
|
|
|
> **Tips:** Untuk melihat semua opsi konfigurasi, gunakan `cmake -LH ..` .
|
|
|
|
**Penjelasan flag penting:**
|
|
| Flag | Fungsi |
|
|
|------|--------|
|
|
| `CMAKE_BUILD_TYPE=RELEASE` | Build untuk production (tanpa debug symbols) |
|
|
| `CMAKE_INSTALL_PREFIX=/usr/local` | Lokasi instalasi |
|
|
| `OPENCV_EXTRA_MODULES_PATH` | Path ke modul contrib |
|
|
| `OPENCV_GENERATE_PKGCONFIG=ON` | Generate file .pc untuk pkg-config |
|
|
| `OPENCV_ENABLE_NONFREE=ON` | Mengaktifkan algoritma berlisensi (SIFT, SURF) |
|
|
| `WITH_TBB=ON` | Mengaktifkan Intel TBB untuk parallel processing |
|
|
|
|
### Langkah 5: Compile (Build)
|
|
|
|
Proses ini akan memakan waktu cukup lama (30-90 menit tergantung spesifikasi komputer) .
|
|
|
|
```bash
|
|
# Gunakan semua core CPU untuk mempercepat
|
|
make -j$(nproc)
|
|
```
|
|
|
|
> **Tips:** Jika komputer Anda memiliki RAM terbatas (<4GB), gunakan `make -j2` untuk menghindari kehabisan memori .
|
|
|
|
### Langkah 6: Install
|
|
|
|
```bash
|
|
sudo make install
|
|
```
|
|
|
|
### Langkah 7: Update Library Cache
|
|
|
|
```bash
|
|
sudo ldconfig
|
|
```
|
|
|
|
Perintah ini memberitahu sistem tentang library yang baru diinstall .
|
|
|
|
---
|
|
|
|
## ✅ Verifikasi Instalasi
|
|
|
|
Setelah instalasi selesai, verifikasi dengan perintah berikut:
|
|
|
|
```bash
|
|
# Cek versi OpenCV
|
|
pkg-config --modversion opencv4
|
|
|
|
# Cek konfigurasi OpenCV
|
|
pkg-config --libs opencv4
|
|
pkg-config --cflags opencv4
|
|
```
|
|
|
|
**Verifikasi Python binding:**
|
|
```python
|
|
python3 -c "import cv2; print(cv2.__version__)"
|
|
```
|
|
|
|
---
|
|
|
|
## ⚙️ Opsi Konfigurasi Tambahan
|
|
|
|
### Menginstall ke Lokasi Kustom
|
|
|
|
```bash
|
|
-D CMAKE_INSTALL_PREFIX=$HOME/.local
|
|
```
|
|
|
|
### Mengaktifkan CUDA (untuk NVIDIA GPU)
|
|
|
|
Jika Anda memiliki GPU NVIDIA dan ingin akselerasi CUDA :
|
|
|
|
```bash
|
|
-D WITH_CUDA=ON \
|
|
-D WITH_CUDNN=ON \
|
|
-D OPENCV_DNN_CUDA=ON \
|
|
-D CUDA_ARCH_BIN="8.6" # Sesuaikan dengan compute capability GPU Anda
|
|
```
|
|
|
|
> **Cara cek compute capability GPU:** `nvidia-smi --query-gpu=compute_cap --format=csv`
|
|
|
|
### Menonaktifkan Modul yang Tidak Diperlukan
|
|
|
|
Untuk mempercepat kompilasi, nonaktifkan modul yang tidak digunakan:
|
|
|
|
```bash
|
|
-D BUILD_opencv_python2=OFF \
|
|
-D BUILD_TESTS=OFF \
|
|
-D BUILD_PERF_TESTS=OFF \
|
|
-D BUILD_EXAMPLES=OFF
|
|
```
|
|
|
|
---
|
|
|
|
## 🐧 Perintah Spesifik OS Lain
|
|
|
|
### macOS (dengan Homebrew)
|
|
|
|
```bash
|
|
# Install dependensi
|
|
brew install cmake git wget
|
|
|
|
# Download source
|
|
git clone https://github.com/opencv/opencv.git
|
|
git clone https://github.com/opencv/opencv_contrib.git
|
|
|
|
# Build
|
|
cd opencv && mkdir build && cd build
|
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
|
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
|
|
..
|
|
make -j$(sysctl -n hw.ncpu)
|
|
sudo make install
|
|
```
|
|
|
|
### Windows (dengan Visual Studio)
|
|
|
|
Untuk Windows, prosesnya sedikit berbeda :
|
|
|
|
1. **Download** pre-built binaries atau source dari [opencv.org/releases](https://opencv.org/releases/)
|
|
2. **Install** CMake dari [cmake.org/download/](https://cmake.org/download/)
|
|
3. **Buka CMake GUI**, set source dan build directory
|
|
4. **Klik Configure**, pilih Visual Studio version (contoh: Visual Studio 16 2019)
|
|
5. **Set** `OPENCV_EXTRA_MODULES_PATH` ke path opencv_contrib/modules
|
|
6. **Klik Generate**, lalu buka OpenCV.sln di Visual Studio
|
|
7. **Build** solution (F7) - pilih **RELEASE** mode
|
|
8. **Set environment variable:**
|
|
- `OpenCV_DIR` = `C:\opencv\build`
|
|
- Tambahkan `C:\opencv\build\x64\vc16\bin` ke **PATH**
|
|
|
|
---
|
|
|
|
## ❗ Masalah Umum dan Solusi
|
|
|
|
| Masalah | Kemungkinan Solusi |
|
|
|---------|-------------------|
|
|
| CMake tidak menemukan dependensi | Install package yang hilang dengan `apt-cache search <nama>` |
|
|
| Build gagal di tengah jalan | Bersihkan build directory: `rm -rf *` lalu konfigurasi ulang |
|
|
| Python tidak bisa import cv2 | Pastikan `BUILD_opencv_python3=ON` dan cek path instalasi Python |
|
|
| Compile sangat lambat | Kurangi parallel job: `make -j2` atau `make -j1` |
|
|
| File .so tidak ditemukan | Jalankan `sudo ldconfig` setelah instalasi |
|
|
|
|
---
|
|
|
|
## 💡 Tips Penting
|
|
|
|
1. **Pilih versi yang stabil** - Gunakan tag versi spesifik (contoh: `4.10.0`) daripada branch `4.x` untuk hasil yang lebih predictable
|
|
2. **Simpan log konfigurasi** untuk referensi di masa depan
|
|
3. **Gunakan ccache** untuk mempercepat rebuild: `sudo apt install ccache`
|
|
4. **Jangan lupa opencv_contrib** jika ingin fitur seperti SIFT, SURF, dan algoritma non-free lainnya
|
|
5. **Perhatikan ruang disk** - Build OpenCV membutuhkan ~10-20GB ruang kosong
|
|
|
|
---
|
|
|
|
Dengan mengikuti panduan ini, Anda akan memiliki instalasi OpenCV yang fully customized sesuai kebutuhan. Selamat mencoba! 🚀 |