এই টপিকটিতে আমরা নির্ণয় করব কিভাবে OpenCV ব্যবহার করে অন্যান্য ক্যামেরা থেকে ভিডিও ক্যাপচার করা যায়। ডিফল্ট ক্যামের ছাড়া অন্য ক্যামেরা অ্যাক্সেস করা ডিফল্ট ক্যামেরা অ্যাক্সেস করার মতো। শুধু একট পার্থক্য হলো 'VideoCapture cap(0)' 쓰는 বদলে ক্যামেরার নম্বর এসাইন করতে হয়। ক্যামেরার নম্বর USB পোর্টের সিকোয়েন্স অনুযায়ী। যদি ক্যামেরা তৃতীয় USB পোর্টে সংযুক্ত থাকে, তবে ক্যামেরার নম্বর ৩ হবে।
তৃতীয় ক্যামেরা অ্যাক্সেস করে রিয়েল-টাইম ভিডিও স্ট্রিম দেখানোর প্রোগ্রাম
#include<opencv2/opencv.hpp> // VideoCapture ক্লাস ব্যবহার করার জন্য OpenCV হেডার
#include<iostream>
using namespace std;
using namespace cv;
int main() {
Mat myImage; // ফ্রেম লোড করার জন্য ম্যাট্রিক্স
namedWindow("Video Player"); // ভিডিও দেখানোর উইন্ডো
VideoCapture cap(3); // তৃতীয় ক্যামেরা থেকে ফ্রেম স্ট্রিম ক্যাপচারের অবজেক্ট
if (!cap.isOpened()) { // ভিডিও স্ট্রিম না পাওয়া গেলে এরর মেসেজ
cout << "No video stream detected" << endl;
system("pause");
return -1;
}
while (true) { // ভিডিও দেখানোর জন্য চিরকাল লুপ
cap >> myImage;
if (myImage.empty()) { // ভিডিও ফ্রেম না পাওয়া গেলে লুপ ব্রেক
break;
}
imshow("Video Player", myImage); // ভিডিও দেখানো
char c = (char)waitKey(25); // ২৫ মিলিসেকেন্ড ফ্রেম প্রসেসিং টাইম এবং ব্রেক কন্ডিশন
if (c == 27) { // 'Esc' চাপলে লুপ ব্রেক
break;
}
imshow("Video Player", myImage); // ভিডিও দেখানো (ডুপ্লিকেট লাইন)
char c = (char)waitKey(25); // ২৫ মিলিসেকেন্ড ফ্রেম প্রসেসিং টাইম এবং ব্রেক কন্ডিশন (ডুপ্লিকেট)
if (c == 27) { // 'Esc' চাপলে লুপ ব্রেক (ডুপ্লিকেট)
break;
}
}
cap.release(); // বাফার মেমোরি রিলিজ
return 0;
}
আউটপুট
