हिस्टोग्राम एक छवि की गहराई की तीव्रता का प्रतिनिधित्व करता है। उदाहरण के लिए, 8 बिट की रंग गहराई वाली छवि पर विचार करें। इसका मतलब है कि प्रत्येक पिक्सेल में रंग की गहराई 0 से मीन्स 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;//Declaring a matrix// original = imread("view.jpg");//loading the image Mat gray;//declaring a matrix// cvtColor(original, gray, COLOR_BGR2GRAY);//converting to grayscale// Mat hist;//declaring a matrix// equalizeHist(gray, hist);//applying histogram equalizer namedWindow("Original");//window for actual image// namedWindow("gray");//window for grayscale image// namedWindow("histogram");//window for histogram// imshow("Original", original);//showing actual image// imshow("gray", gray);//showing grayscale image// imshow("histogram", hist);//showing histogram effect waitKey(0);//wait for keystroke// return(0); }
आउटपुट