opencv
C ++ में कंट्रास्ट और ब्राइटनेस
खोज…
वाक्य - विन्यास
- शून्य cv :: Mat :: ConvertTo (OutputArray m, int rtype, double alpha = 1, double beta = 0) const
पैरामीटर
पैरामीटर | विवरण |
---|---|
म | आउटपुट मैट्रिक्स; यदि ऑपरेशन से पहले उसका आकार या प्रकार ठीक नहीं है, तो उसे पुनः प्राप्त किया जाता है |
rtype | वांछित आउटपुट मैट्रिक्स प्रकार या, बल्कि, चैनल की संख्या के बाद से गहराई उसी तरह है जैसे इनपुट में है; यदि rtype नकारात्मक है, तो आउटपुट मैट्रिक्स में इनपुट के समान प्रकार होगा |
अल्फा | वैकल्पिक पैमाने का कारक। यह एक छवि के विपरीत को बदलता है। 1 से नीचे के मूल्य विपरीत को कम करते हैं और एक के ऊपर विपरीत को बढ़ाते हैं |
बीटा | वैकल्पिक डेल्टा स्केल किए गए मूल्यों में जोड़ा गया। सकारात्मक मूल्यों से चमक में वृद्धि होती है और नकारात्मक मूल्यों में चमक कम हो जाती है |
टिप्पणियों
इसके विपरीत :
कंट्रास्ट ल्यूमिनेन्स या रंग में अंतर है जो एक वस्तु (या किसी छवि या प्रदर्शन में इसका प्रतिनिधित्व) को अलग बनाता है। एक पिक्सेल और उसके पड़ोसियों के बीच का अंतर जितना अधिक होता है, उस क्षेत्र में उतना ही अधिक विपरीत होता है।
चमक :
दूसरे शब्दों में, चमक एक दृश्य लक्ष्य की चमक द्वारा प्राप्त धारणा है। पिक्सल के संदर्भ में, एक पिक्सेल का मूल्य जितना अधिक होता है उतना ही शानदार होता है।
इसके विपरीत और चमक समायोजन:
g (i, j) = α.f (i, j) +)
f(x)
स्रोत छवि पिक्सेल के रूप में और g(x)
आउटपुट छवि पिक्सेल के रूप में।
i
और j
इंगित करता है कि पिक्सेल i-th पंक्ति और j-th कॉलम में स्थित है।
मापदंडों α > 0
और β
अक्सर लाभ और पूर्वाग्रह मापदंडों कहा जाता है, कभी-कभी इन मापदंडों को विपरीत और चमक को नियंत्रित करने के लिए कहा जाता है।
Opencv में एक फ़ंक्शन है जिसे ConvertTo () कहा जाता है जो इन दोनों ऑपरेशनों को लागू कर सकता है।
स्रोत: http://docs.opencv.org/trunk/d3/d63/classcv_1_1Mat.html#adf88c60c5b4980e05bb5560809169bb http://opocsv-srf.blogspot.ca/2013/07/change-contrast-of-image-or.vide .html http://opencv-srf.blogspot.ca/2013/07/change-brightness.html
C ++ में इमेज की चमक और कंट्रास्ट को एडजस्ट करना
// main.cpp : Defines the entry point for the console application.
//
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, const char** argv)
{
Mat img = imread("lena30.jpg", CV_LOAD_IMAGE_COLOR); //open and read the image
if (img.empty())
{
cout << "Image cannot be loaded..!!" << endl;
return -1;
}
Mat img_higher_contrast;
img.convertTo(img_higher_contrast, -1, 2, 0); //increase the contrast (double)
Mat img_lower_contrast;
img.convertTo(img_lower_contrast, -1, 0.5, 0); //decrease the contrast (halve)
Mat img_higher_brightness;
img.convertTo(img_higher_brightness, -1, 1, 20); //increase the brightness by 20 for each pixel
Mat img_lower_brightness;
img.convertTo(img_lower_brightness, -1, 1, -20); //decrease the brightness by 20 for each pixel
//create windows
namedWindow("Original Image", CV_WINDOW_AUTOSIZE);
namedWindow("High Contrast", CV_WINDOW_AUTOSIZE);
namedWindow("Low Contrast", CV_WINDOW_AUTOSIZE);
namedWindow("High Brightness", CV_WINDOW_AUTOSIZE);
namedWindow("Low Brightness", CV_WINDOW_AUTOSIZE);
//show the image
imshow("Original Image", img);
imshow("High Contrast", img_higher_contrast);
imshow("Low Contrast", img_lower_contrast);
imshow("High Brightness", img_higher_brightness);
imshow("Low Brightness", img_lower_brightness);
waitKey(0); //wait for key press
destroyAllWindows(); //destroy all open windows
return 0;
}
कार्यक्रम का आउटपुट: