प्रत्येक पिक्सेल के संतृप्ति मूल्य को निरंतर मान जोड़ने के लिए, मैं इसे डबल लूप में करता हूं। मुझे आश्चर्य है कि यह प्राप्त करने में कोई आसान और तेज़ आदेश है या नहीं।ओपनसीवी के साथ संतृप्ति मूल्यों को कैसे बदला जाए?
उत्तर
Mat img(200, 300, CV_8UC1);
Mat saturated;
double saturation = 10;
double scale = 1;
// what it does here is dst = (uchar) ((double)src*scale+saturation);
img.convertTo(saturated, CV_8UC1, scale, saturation);
संपादित
संतृप्ति से, आप एक एचएसवी छवि में एस चैनल मतलब हैं, तो आप split()
साथ तीन चैनलों में अपनी छवि separe को, एस चैनल में संतृप्ति सुधार लागू की जरूरत है, और फिर उन्हें merge()
के साथ एक साथ रखें।
// BGR to HSV
cvCvtColor(img, img, CV_BGR2HSV);
for (int i=0; i < img.rows ; i++)
{
for(int j=0; j < img.cols; j++)
{
// You need to check this, but I think index 1 is for saturation, but it might be 0 or 2
int idx = 1;
img.at<cv::Vec3b>(i,j)[idx] = new_value;
// or:
// img.at<cv::Vec3b>(i,j)[idx] += adds_constant_value;
}
}
// HSV back to BGR
cvCvtColor(img, img, CV_HSV2BGR);
@ करफिलिप - मुझे लगता है कि आपके द्वारा दिए गए वैकल्पिक उत्तर को जानने के लिए प्रश्न पूछा गया था। –
प्रयोगों मैं कोशिश की के लिए, बंटवारे एचएसवी मूल्यों की वैकल्पिक विधि, अलग-अलग चैनलों को एडजस्ट करने के लिए और फिर किसी मर्ज कर एक बेहतर प्रदर्शन दिया।
(h, s, v) = cv2.split(imghsv)
s = s*satadj
s = np.clip(s,0,255)
imghsv = cv2.merge([h,s,v])
ध्यान दें कि मैं मान बदल दिया था BGR2HSV परिवर्तन के दौरान float32 के कारण uint8 (डिफ़ॉल्ट) अतिप्रवाह को संतृप्ति परिवर्तन के दौरान ऋणात्मक मानों से बचने के लिए: नीचे क्या मेरे लिए कई गुना तेजी से काम किया पिक्सल के माध्यम से पाशन की तुलना में है:
imghsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV).astype("float32")
और इसे वापस परिवर्तित मेरी संतृप्ति समायोजन के बाद uint8 डिफ़ॉल्ट:
imgrgb = cv2.cvtColor(imghsv.astype("uint8"), cv2.COLOR_HSV2BGR)
- 1. पांडा: कॉलम के सभी मूल्यों को कैसे बदला जाए?
- 2. एनीमेशन के साथ नंबरपिकर के मूल्य को कैसे बदला जाए?
- 3. एसडब्ल्यूटी के साथ घटकों के अभिभावक को कैसे बदला जाए?
- 4. जीएलएसएल के साथ बनावट के रंग को कैसे बदला जाए?
- 5. स्टब्स के व्यवहार को कैसे बदला जाए?
- 6. सबमिट बटन उपस्थिति को कैसे बदला जाए?
- 7. अलगाव स्तर को कैसे बदला जाए?
- 8. डिफ़ॉल्ट पायथन संस्करण को कैसे बदला जाए?
- 9. तालिका के डिफ़ॉल्ट संयोजन को कैसे बदला जाए?
- 10. टेबल व्यू की पंक्तियों के रंगों को कैसे बदला जाए?
- 11. HttpWebRequest में UserAgent के एन्कोडिंग को कैसे बदला जाए?
- 12. सिल्वरलाइट में टेक्स्टब्लॉक के पृष्ठभूमि रंग को कैसे बदला जाए?
- 13. एनडीबी रिकॉर्ड के पूर्वजों को कैसे बदला जाए?
- 14. डेल्फी-आईडीई: कक्षा-पूर्णता के तरीके को कैसे बदला जाए?
- 15. MATLAB प्लॉटिंग आकृति के विंडो शीर्षक को कैसे बदला जाए?
- 16. टास्कबार पर बटन के क्रम को कैसे बदला जाए?
- 17. अभिव्यक्ति में पैरामीटर के प्रकार को कैसे बदला जाए?
- 18. SherlockActionBar लाइब्रेरी के एक्शन मोड आइकन को कैसे बदला जाए?
- 19. पैनोरमा आइटम हेडर के फ़ॉन्ट आकार को कैसे बदला जाए?
- 20. Wpf AdornerLayer बच्चों के जेड-ऑर्डर को कैसे बदला जाए?
- 21. PHP - header.php सहित पृष्ठ के शीर्षक को कैसे बदला जाए?
- 22. रेल: पृष्ठ के शीर्षक को कैसे बदला जाए?
- 23. jQuery UI संवाद के पृष्ठभूमि रंग को कैसे बदला जाए?
- 24. आईपैड सिम्युलेटर के अभिविन्यास को कैसे बदला जाए?
- 25. जॉप्शनपेन के पृष्ठभूमि रंग को कैसे बदला जाए?
- 26. achartengine में पाइचर्ट के मार्जिन को कैसे बदला जाए?
- 27. पायथन: टुपल के अंतिम (तत्व) तत्व को कैसे बदला जाए?
- 28. नेविगेशन नियंत्रक के रूटव्यू कंट्रोलर को कैसे बदला जाए?
- 29. लूपिंग के बिना डेटाटेबल कॉलम वैल्यू को कैसे बदला जाए?
- 30. TDBNavigator घटक के व्यवहार को कैसे बदला जाए?
ऊपर समारोह मैट्रिक्स के किसी भी प्रकार के लिए, बस सु काम करेंगे अपने प्रकार के लिए cv_8UC1 bstitute। कन्वर्ट टू फंक्शन के लिए प्रलेखन [यहां] पाया जा सकता है (http://opencv.itseez.com/modules/core/doc/basic_structures.html#mat-convertto) – Chris
हां, अगर आप केवल एस चैनल का इलाज करना चाहते हैं पहले इसे अलग करने की आवश्यकता होगी। जिसके लिए तेज़ है - मुझे नहीं पता, दोनों कोशिश करें और देखें! – Chris
कन्वर्टटो निश्चित रूप से अनुकूलित है, लेकिन विभाजन और विलय का जुर्माना (सभी आवंटन के साथ) वह अनुकूलित कन्वर्ट() का उपयोग करने के लाभ से अधिक हो सकता है। जैसा कि क्रिस ने कहा, कोशिश करो और देखें। – Sam