हिस्टोग्राम छवि की गहराई तीव्रता को दर्शाता है। उदाहरण के लिए, 8 बिट रंग गहराई वाली छवि पर विचार करें। इसका मतलब है कि प्रत्येक पिक्सेल का रंग गहराई 0 से 255 तक हो सकती है। यदि छवि RGB छवि है, तो इसमें लाल, हरा और नीला चैनल होता है। उदाहरण के लिए, छवि के एक बिंदु पर केवल लाल है। तो उस छवि का रंग गहराई लाल चैनल में है, और पिक्सेल का मान 0 से 255 तक भिन्न होगा। 0 का मतलब लाल नहीं और 255 का मतलब अधिक लाल।
हिस्टोग्राम सभी चैनलों और सभी रंगों के लिए इस तरह का परिणाम दिखाता है। पिक्सेल के मान को बदलकर, आप कुछ विशिष्ट रंग पिक्सेल की तीव्रता बदल सकते हैं। उदाहरण के लिए, यदि आप लाल चैनल घनत्व बढ़ाना चाहते हैं, तो आप लाल चैनल के मान को बदल सकते हैं।
सबसे पहले, हम ग्रे छवि में हिस्टोग्राम इक्वलाइज़र लागू करेंगे। एक ग्रे छवि में केवल काला और सफेद शामिल होता है। इसका मतलब है कि केवल एक चैनल है। छवि 8-बिट छवि है। इसका मतलब है कि रंग गहराई 0 से 255 तक भिन्न होती है। 0 का मतलब सफेद, और 255 का मतलब काला। निम्नलिखित कोड में, हम एक रंगीन छवि लोड करेंगे और इसे ग्रेस्केल में परिवर्तित करेंगे। फिर हम OpenCV के 'equalizeHist' फंक्शन का उपयोग करके पिक्सेल मानों को इक्वलाइज़ करेंगे।
OpenCV में हिस्टोग्राम इक्वलाइज़र कैसे लागू करें, यह दिखाने वाला निम्नलिखित प्रोग्राम।
उदाहरण
#include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace cv; using namespace std; int main() { Mat original;//एक मैट्रिक्स घोषित करना// original = imread("view.jpg");//छवि लोड करना Mat gray;//एक मैट्रिक्स घोषित करना// cvtColor(original, gray, COLOR_BGR2GRAY);//ग्रेस्केल में परिवर्तित करना// Mat hist;//एक मैट्रिक्स घोषित करना// equalizeHist(gray, hist);//हिस्टोग्राम इक्वलाइज़र लागू करना namedWindow("Original");//वास्तविक छवि के लिए विंडो// namedWindow("gray");//ग्रेस्केल छवि के लिए विंडो// namedWindow("histogram");//हिस्टोग्राम के लिए विंडो// imshow("Original", original);//वास्तविक छवि दिखाना// imshow("gray", gray);//ग्रेस्केल छवि दिखाना// imshow("histogram", hist);//हिस्टोग्राम प्रभाव दिखाना waitKey(0);//कीस्ट्रोक की प्रतीक्षा करना// return(0); }आउटपुट
