आप प्रक्रिया के बारे में कुछ गलतफहमी है।
विधि सीवी :: estimateRigidTransform इनपुट के दो सेट इनपुट के रूप में लेता है। और उसके बाद रूपांतरण मैट्रिक्स खोजने के लिए समीकरणों का सेट हल करता है। परिवर्तन का आउटपुट स्रोत बिंदुओं को डीएसटी पॉइंट से जोड़ता है (सटीक या बारीकी से, यदि सटीक मिलान संभव नहीं है - उदाहरण के लिए फ्लोट निर्देशांक)।
यदि आप दो छवियों पर अनुमान RigidTransform लागू करते हैं, तो OpenCV पहले कुछ आंतरिक विधि का उपयोग करके अंक के मिलान करने वाले जोड़े ढूंढता है (opencv docs देखें)।
सीवी :: warpAffine फिर दिए गए परिवर्तन मैट्रिक्स के अनुसार src image को dst में बदल देता है। लेकिन किसी भी (लगभग किसी भी) परिवर्तन हानि ऑपरेशन है। एल्गोरिदम को कुछ डेटा अनुमान लगाना पड़ता है, क्योंकि वे उपलब्ध नहीं हैं। ज्ञात जानकारी का उपयोग करके आप अज्ञात मान की गणना करते हुए, इस प्रक्रिया को इंटरपोलेशन कहा जाता है। छवि स्केलिंग के बारे में कुछ जानकारी wiki पर मिल सकती है। वही नियम अन्य परिवर्तनों पर लागू होते हैं - घूर्णन, तिरछा, परिप्रेक्ष्य ... जाहिर है यह अनुवाद पर लागू नहीं होता है।
अपनी परीक्षण छवियों को देखते हुए, मुझे लगता है कि OpenCV संदर्भ के रूप में दीपक को ले जाता है। अंतर से स्पष्ट है कि लैंपशेड सबसे अच्छा बदल जाता है। डिफ़ॉल्ट ओपनसीवी वारिंग के लिए रैखिक इंटरपोलेशन का उपयोग करता है क्योंकि यह सबसे तेज़ तरीका है। लेकिन आप बेहतर परिणामों के लिए अधिक प्रगति विधि निर्धारित कर सकते हैं - फिर opencv docs से परामर्श लें।
निष्कर्ष: आपको जो परिणाम मिला है वह बहुत अच्छा है, अगर आप ध्यान में रखते हैं, तो यह स्वचालित प्रक्रिया का परिणाम है। यदि आप बेहतर परिणाम चाहते हैं, तो आपको संबंधित बिंदुओं का चयन करने के लिए एक और तरीका खोजना होगा। या बेहतर इंटरपोलेशन विधि का उपयोग करें। किसी भी तरह से, परिवर्तन के बाद, diff 0 नहीं होगा। यह प्राप्त करने के लिए लगभग असंभव है, क्योंकि बिटमैप पिक्सेल की अलग ग्रिड है, इसलिए हमेशा कुछ अंतराल होंगे, जिन्हें अनुमान लगाने की आवश्यकता है।
सबसे पहले, आप वास्तव में क्या हासिल करना चाहते हैं? बेशक, कुछ सामान्य परिवर्तन करते समय, abs-diff शून्य-शून्य होगा। यहां तक कि 1 डिग्री के घूर्णन परिवर्तन से पिक्सेल इंटरपोलेशन की वजह से बड़े बदलाव आएंगे। – jnovacho
हैलो, jnovacho, मैं opencv – Mudasar
का उपयोग कर छवियों को सुधारना चाहता हूं, मुझे अभी भी समस्या दिखाई नहीं दे रही है। आपका कोड मेरे लिए ठीक लगता है। क्या आप कुछ स्क्रीनशॉट - स्रोत और गंतव्य छवि और आउटपुट छवि भी प्रदान कर सकते हैं। – jnovacho