Penjelasan Kode:
- Import Libraries:
cv2: OpenCV library untuk pemrosesan gambar.numpy: Untuk operasi numerik.
- Konfigurasi:
cap: Referensi ke objekVideoCaptureuntuk membuka gambar CCTV. Ganticapdengan path file CCTV Anda.threshold: Nilai untuk menentukan apakah sebuah objek dianggap sebagai ‘objek’ yang relevan. Nilai yang lebih rendah akan lebih sensitif, sedangkan nilai yang lebih tinggi akan lebih selektif.area_to_detect: Area (dalam piksel) yang akan dicari. Ini akan membatasi pencarian ke area tertentu dari gambar.
find_objects(frame, threshold):- Konversi ke Grayscale: Konversi gambar menjadi grayscale untuk mengurangi kompleksitas.
- Deteksi Multi-Skala: Gunakan
cv2.CascadeClassifieruntuk mendeteksi objek dalam gambar grayscale.haarcascade_stereo.xmladalah file XML yang berisi definisi objek untuk deteksi. File ini harus berada di direktori yang sama dengan skrip Python. - Iterasi Objek: Iterasi atas objek yang terdeteksi.
- Memastikan di dalam Batas: Memastikan objek yang ditemukan berada di dalam batas gambar (yaitu, tidak di luar gambar).
- Merangkai: Merangkai persegi panjang (rectangle) berwarna merah di sekitar objek.
- Mengembalikan daftar objek yang terdeteksi.
display_image(frame):- Menampilkan gambar yang telah diproses menggunakan
cv2.imshow(). cv2.waitKey(0)menunggu hingga tombol ditekan.cv2.destroyAllWindows()menutup semua jendela OpenCV.
- Menampilkan gambar yang telah diproses menggunakan
- Penggunaan:
- Membuka gambar menggunakan
cv2.VideoCapture(). - Menampilkan gambar menggunakan
display_image(). - Memanggil
find_objects()untuk menemukan objek. - Menampilkan objek yang ditemukan.
- Membuka gambar menggunakan
Langkah-langkah untuk Menjalankan Skrip:
- Instal OpenCV:
pip install opencv-python - Unduh File XML: Unduh
haarcascade_stereo.xmldari https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascades_stereo.xml . Simpan file ini di direktori yang sama dengan skrip Python Anda. - Jalankan Skrip:
python your_script_name.py(gantiyour_script_name.pydengan nama file yang Anda simpan).
Peningkatan Lebih Lanjut:
- Penanganan Kesalahan: Tambahkan penanganan kesalahan yang lebih rinci untuk menangani kasus-kasus seperti file gambar tidak ditemukan atau format yang tidak sesuai.
- Skala Fokus: Tambahkan fungsi untuk mengubah skala fokus ke area tertentu.
- Peningkatan Threshold: Tambahkan opsi untuk menyesuaikan parameter threshold.
- Pencarian Berbasis Komentar: Implementasikan sistem pencarian berdasarkan komentar teks pada video CCTV. Ini akan memungkinkan Anda untuk mencari objek berdasarkan konten video.
- Peningkatan Resolusi: Perhatikan resolusi video CCTV saat mencari objek.
- Penyimpanan Hasil: Simpan gambar yang telah dideteksi dalam format yang mudah dibaca.
- GUI (Graphical User Interface): Buat GUI (menggunakan library seperti Tkinter, PyQt, atau Kivy) untuk memudahkan penyesuaian dan tampilan.