Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mengurangkan Lag Penampan Apabila Merakam Video dengan VideoCapture OpenCV?

Bagaimanakah Saya Boleh Mengurangkan Lag Penampan Apabila Merakam Video dengan VideoCapture OpenCV?

Barbara Streisand
Barbara Streisandasal
2024-11-07 09:57:02386semak imbas

How Can I Reduce Buffer Lag When Capturing Video with OpenCV's VideoCapture?

Buffer Lag dalam OpenCV VideoCapture

Pengenalan

Artikel ini meneroka masalah biasa yang dihadapi semasa menangkap video menggunakan objek VideoCapture OpenCV: lag disebabkan oleh penangkapan penampan. Kami membentangkan penyelesaian yang berpotensi, kedua-duanya daripada OpenCV dan sebagai penggodam.

Penyelesaian OpenCV

Menurut dokumentasi OpenCV, saiz penimbal tangkapan boleh ditetapkan. Walau bagaimanapun, ciri ini hanya tersedia dengan bahagian belakang DC1394 v2.x.

<code class="cpp">cv::VideoCapture cap;
cap.set(CV_CAP_PROP_BUFFERSIZE, 3);</code>

Dalam OpenCV versi 3.4 dan lebih baharu, pengehadan nampaknya telah dialih keluar:

<code class="cpp">cv::VideoCapture cap;
cap.set(cv::CAP_PROP_BUFFERSIZE, 3);</code>

Hackaround 1

Jika penyelesaian OpenCV gagal, kami boleh menggunakan penggodam berdasarkan mengukur masa yang diperlukan untuk mendapatkan semula bingkai. Jika terlalu pendek, bingkai itu berkemungkinan telah diambil daripada penimbal dan boleh dibuang. Kami terus menyoal bingkai sehingga masa melebihi ambang, menunjukkan bingkai terkini.

Penggodam 2

Satu lagi penggodam melibatkan penciptaan urutan berasingan untuk terus merebut bingkai pada kelajuan tinggi, menggunakan cv::VideoCapture.grab(), untuk memastikan penimbal kosong. Penyegerakan antara utas utama dan tambahan boleh dicapai menggunakan kunci putaran.

Kesimpulan

Walaupun OpenCV menyediakan tetapan saiz penimbal, ketersediaannya terhad dengan bahagian belakang tertentu. Penggodam yang dibentangkan menawarkan pendekatan alternatif untuk mengurangkan ketinggalan penimbal, membolehkan pembangun menangkap video dengan kelewatan yang dikurangkan. Penyelesaian optimum mungkin berbeza-beza bergantung pada keperluan sistem dan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengurangkan Lag Penampan Apabila Merakam Video dengan VideoCapture OpenCV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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