Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangani Lag Tangkapan Video yang Disebabkan oleh Penampan Tangkapan Penuh dalam OpenCV?

Bagaimana untuk Menangani Lag Tangkapan Video yang Disebabkan oleh Penampan Tangkapan Penuh dalam OpenCV?

Barbara Streisand
Barbara Streisandasal
2024-11-05 15:31:02782semak imbas

How to Address Video Capture Lag Caused by a Full Capture Buffer in OpenCV?

Kelewatan dalam Tangkapan Video Kerana Penampan Tangkapan

Isu

Merakam strim video mjpeg daripada kamera web menggunakan VideoCapture OpenCV boleh mengakibatkan ketinggalan yang ketara jika benang tangkap membaca bingkai pada kadar yang lebih rendah daripada kadar bingkai suapan webcam. Ini disebabkan oleh pengumpulan bingkai dalam penimbal tangkapan sehingga penimbal disiram.

Penyelesaian OpenCV

Untuk mengepam penimbal tangkapan secara manual, anda boleh menetapkan sifat CV_CAP_PROP_BUFFERSIZE objek VideoCapture. Ini akan mengehadkan bilangan bingkai yang disimpan dalam penimbal dalaman. Walau bagaimanapun, pilihan ini hanya disokong untuk perkakasan bahagian belakang tertentu.

Hackaround 1

Jika tetapan saiz penimbal tidak menyelesaikan isu, anda boleh menggunakan teknik hackaround. Ia melibatkan pertanyaan berulang kali pada bingkai sehingga masa yang diambil untuk mendapatkan semula bingkai melebihi ambang tertentu. Jika masa perolehan adalah sangat rendah, ini menunjukkan bahawa bingkai diperoleh daripada penimbal dan harus dibuang.

Hackaround 2

Satu lagi penyelesaian hackaround ialah mencipta benang berasingan yang terus merebut bingkai pada kelajuan tinggi untuk memastikan penimbal tangkapan kosong. Urutan ini harus menggunakan fungsi cv::VideoCapture.grab() untuk mengelakkan overhed semasa meraih bingkai. Anda boleh menggunakan teknik penyegerakan untuk memastikan benang pekerja membaca bingkai daripada penimbal dengan cara terkawal.

Atas ialah kandungan terperinci Bagaimana untuk Menangani Lag Tangkapan Video yang Disebabkan oleh Penampan Tangkapan Penuh dalam 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