Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में ओपनसीवी का उपयोग कर माउस इवेंट्स के साथ कैसे काम करें?

माउस इवेंट ओपनसीवी की सबसे उपयोगी विशेषताओं में से एक है। ओपनसीवी में, हम माउस पॉइंटर की स्थिति को ट्रैक कर सकते हैं और क्लिक (दाएं, बाएं और मध्य-क्लिक) को ट्रैक कर सकते हैं। 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){ //function to track mouse movement and click//
   if (event == EVENT_LBUTTONDOWN){ //when left button clicked//
      cout << "Left click has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_RBUTTONDOWN){ //when right button clicked//
      cout << "Rightclick has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_MBUTTONDOWN){ //when middle button clicked//
      cout << "Middleclick has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_MOUSEMOVE){ //when mouse pointer moves//
      cout << "Current mouse position:(" << x << "," << y << ")" << endl;
   }
}
int main() {
   Mat image = imread("bright.jpg");//loading image in the matrix//
   namedWindow("Track");//declaring window to show image//
   setMouseCallback("Track", locator, NULL);//Mouse callback function on define window//
   imshow("Track", image);//showing image on the window//
   waitKey(0);//wait for keystroke//
   return 0;
}

आउटपुट

सी ++ में ओपनसीवी का उपयोग कर माउस इवेंट्स के साथ कैसे काम करें?

सी ++ में ओपनसीवी का उपयोग कर माउस इवेंट्स के साथ कैसे काम करें?


  1. C++ का उपयोग करके OpenCV में एक रेखा कैसे खींचना है?

    एक रेखा खींचने के लिए हमें दो बिंदुओं की आवश्यकता होती है-आरंभिक बिंदु और अंत बिंदु। रेखा खींचने के लिए हमें कैनवास की भी आवश्यकता होती है। ओपनसीवी, हमारे कैनवास में मैट्रिक्स का उपयोग करके, हमें लाइन के शुरुआती और समाप्ति बिंदुओं को परिभाषित करने की आवश्यकता है। हमें रेखा को भी एक रंग निर्दिष्ट कर

  1. सी ++ का उपयोग कर ओपनसीवी में बाइनरी छवि को कैसे पलटना है?

    बाइनरी इमेज को इनवर्ट करने का मतलब है पिक्सल वैल्यू को इनवर्ट करना। एक दृश्य परिप्रेक्ष्य से, जब हम एक बाइनरी छवि को उलटते हैं, तो सफेद पिक्सेल काले रंग में परिवर्तित हो जाएंगे, और काले पिक्सेल सफेद में परिवर्तित हो जाएंगे। इस फ़ंक्शन का मूल रूप है - cvtColor(original_image, grayscale_image, COLOR_

  1. सी ++ का उपयोग कर ओपनसीवी में बाइनरी छवि कैसे बनाएं?

    एक द्विआधारी छवि सिर्फ एक डिजिटल छवि है जो दो रंगों, काले और सफेद का प्रतिनिधित्व करती है। इमेज प्रोसेसिंग के नजरिए से, बाइनरी इमेज में दो संभावित मानों वाले पिक्सल होते हैं- शून्य और एक। जब पिक्सेल का मान 0 होता है, तो यह एक शुद्ध काले रंग का प्रतिनिधित्व करता है। जब पिक्सेल का मान 1 होता है, तो इस