इस विषय में, हम निर्धारित करेंगे कि C++ में OpenCV का उपयोग करके इमेज कैसे लोड करें और दिखाएं। OpenCV में इमेज लोड करने और दिखाने के लिए निम्नलिखित फ़ंक्शन आवश्यक हैं।
- Mat: Mat कोई फ़ंक्शन नहीं है। यह एक डेटा संरचना है, एक प्रकार का वेरिएबल। C++ में int, char, string वेरिएबल प्रकारों की तरह, Mat OpenCV का एक वेरिएबल है, जो इमेज को अंदर लोड करने के लिए मैट्रिक्स डेटा संरचना बनाता है। इस प्रोग्राम में, हमने 'Mat myImage;' लिखा। इसका मतलब है कि हम 'myImage' नामक एक मैट्रिक्स वेरिएबल घोषित कर रहे हैं।
- namedWindow(): यह कुछ मेमोरी आवंटित करता है और इमेज दिखाने के लिए एक विंडो बनाता है। यह फोटो फ्रेम की तरह काम करता है। OpenCV में, हमें फ़ंक्शन को 'namedWindow("name of the window", flag)' के रूप में बनाना होगा।
- imread(): यह फ़ंक्शन किसी परिभाषित स्थान से इमेज पढ़ता है। यह प्रोग्राम 'C:' ड्राइव से इमेज पढ़ता है। इस फ़ंक्शन का उपयोग करने के लिए, आपको इसे 'imread("location of the image/name of the image with the extension", flag)' के रूप में लिखना होगा।
- imshow(): यह फ़ंक्शन परिभाषित विंडो में इमेज दिखाता है। इस फ़ंक्शन का उपयोग करने के लिए आपको 'imshow("name of the window", name of the matrix)' के रूप में लिखना होगा।
- waitKey(): यह OpenCV का एक महत्वपूर्ण फ़ंक्शन है। इमेज प्रोसेस करने और ऑपरेशन निष्पादित करने के लिए, हमें सिस्टम को कुछ समय देना होगा। यदि हम ऐसा नहीं करते हैं, तो हमें वांछित आउटपुट नहीं मिलेगा। यह फ़ंक्शन प्रोग्राम बंद करने से पहले एक निश्चित अवधि तक प्रतीक्षा करता है। यदि आप waitKey(10000) का उपयोग करते हैं, तो यह 10 सेकंड के बाद प्रोग्राम बंद कर देगा। यदि आप waitKey(0) लिखते हैं, तो यह उपयोगकर्ता से कीस्ट्रोक की प्रतीक्षा करेगा। जब उपयोगकर्ता कीबोर्ड से कोई कुंजी दबाता है, तो प्रोग्राम रुक जाएगा। इस फ़ंक्शन को 'waitKey(milliseconds)' के रूप में लिखना होगा।
- destroyWindows(): यह फ़ंक्शन सभी विंडो बंद करता है। जब हम विंडो बनाते हैं, तो हम कुछ मेमोरी आवंटित करते हैं। destroyWindow() फ़ंक्शन उस मेमोरी को सिस्टम में मुक्त करता है।
निम्नलिखित प्रोग्राम दिखाता है कि OpenCV लाइब्रेरी का उपयोग करके इमेज कैसे लोड करें और दिखाएं।
उदाहरण
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
Mat myImage;
namedWindow("PhotoFrame");
myImage = imread("lakshmi.jpg");
if (myImage.empty()) {
cout << "Couldn't load the image." << endl;
system("pause");
return -1;
}
imshow("PhotoFrame", myImage);
destroyWindow("Photoframe");
waitKey(0);
return 0;
}
उपरोक्त प्रोग्राम को निष्पादित करने पर, हमें निम्नलिखित आउटपुट मिलता है -
आउटपुट
