Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Meningkatkan Ketepatan Pengesanan Objek Merah dalam Ruang Warna HSV dengan OpenCV?

Bagaimana untuk Meningkatkan Ketepatan Pengesanan Objek Merah dalam Ruang Warna HSV dengan OpenCV?

Linda Hamilton
Lepaskan: 2024-11-15 04:43:02
asal
1018 orang telah melayarinya

How to Improve Red Object Detection Accuracy in HSV Color Space with OpenCV?

Pengesanan Objek Ruang Warna HSV Dioptimumkan dengan OpenCV

Masalah:

Memandangkan imej yang mengandungi segi empat tepat merah, tugas adalah untuk meningkatkan ketepatan pengesanan warna merah menggunakan kaedah cv::inRange OpenCV dalam ruang warna HSV.

Pendekatan Asal:

int H_MIN = 0;
int H_MAX = 10;
int S_MIN = 70; 
int S_MAX = 255;
int V_MIN = 50;
int V_MAX = 255;

cv::inRange( imageHSV, cv::Scalar( H_MIN, S_MIN, V_MIN ), cv::Scalar( H_MAX, S_MAX, V_MAX ), imgThreshold0 );
Salin selepas log masuk

Pendekatan ini menyediakan keputusan yang tidak memuaskan.

Penyelesaian yang Diperbaiki:

Pendekatan asal gagal mengambil kira "pembungkusan" warna merah sekitar 180 darjah dalam ruang HSV. Untuk menangani perkara ini, julat H perlu memasukkan kedua-dua [0,10] dan [170, 180].

inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1);
inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2);

Mat1b mask = mask1 | mask2;
Salin selepas log masuk

Pendekatan yang dikemas kini ini menghasilkan hasil pengesanan yang lebih baik.

Alternatif Pendekatan:

Kaedah lain yang cekap ialah:

  1. Terbalikkan imej BGR.
  2. Tukar kepada HSV.
  3. Cari cyan warna.
Mat3b bgr_inv = ~bgr;
inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90
Salin selepas log masuk

Pendekatan alternatif ini menyediakan semakan julat tunggal dan menghasilkan hasil yang memuaskan.

Atas ialah kandungan terperinci Bagaimana untuk Meningkatkan Ketepatan Pengesanan Objek Merah dalam Ruang Warna HSV dengan OpenCV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan