মাউস ইভেন্ট OpenCV-র সবচেয়ে উপযোগী ফিচারগুলোর একটি। OpenCV-এ আমরা মাউস পয়েন্টারের অবস্থান ট্র্যাক করতে পারি এবং ক্লিকগুলো (ডান, বাম এবং মিডল-ক্লিক) ট্র্যাক করতে পারি। রোবোটিক্স এবং কম্পিউটার ভিশনে OpenCV-র বিস্তৃত ব্যবহার রয়েছে। রোবোটিক্স এবং কম্পিউটার ভিশনে মাউস পয়েন্টার এবং ক্লিক ট্র্যাক করা অতি সাধারণ।
এখানে আমরা বুঝব কিভাবে একটি ইমেজে মাউস পয়েন্টারের লোকেশন ট্র্যাক করা যায় এবং ক্লিকগুলো ট্র্যাক করা যায়।
মাউস পয়েন্টারের লোকেশন এবং ক্লিক ট্র্যাক করার প্রোগ্রাম
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
void locator(int event, int x, int y, int flags, void* userdata) { // মাউস মুভমেন্ট এবং ক্লিক ট্র্যাক করার ফাংশন
if (event == EVENT_LBUTTONDOWN) { // বাম বাটন ক্লিক হলে
cout << "Left click has been made, Position:(" << x << "," << y << ")" << endl;
} else if (event == EVENT_RBUTTONDOWN) { // ডান বাটন ক্লিক হলে
cout << "Right click has been made, Position:(" << x << "," << y << ")" << endl;
} else if (event == EVENT_MBUTTONDOWN) { // মিডল বাটন ক্লিক হলে
cout << "Middle click has been made, Position:(" << x << "," << y << ")" << endl;
} else if (event == EVENT_MOUSEMOVE) { // মাউস পয়েন্টার হলে
cout << "Current mouse position:(" << x << "," << y << ")" << endl;
}
}
int main() {
Mat image = imread("bright.jpg"); // ইমেজ ম্যাট্রিক্সে লোড
namedWindow("Track"); // ইমেজ দেখানোর জন্য উইন্ডো
setMouseCallback("Track", locator, NULL); // ডিফাইন করা উইন্ডোতে মাউস কলব্যাক ফাংশন
imshow("Track", image); // উইন্ডোতে ইমেজ দেখানো
waitKey(0); // কীস্ট্রোক অপেক্ষা
return 0;
}
আউটপুট

