2009-05-05 11 views
6

यह एक काफी व्यापक सवाल है; दो फोटोग्राफ लेने के लिए कौन से टूल्स/लाइब्रेरी मौजूद हैं जो समान नहीं हैं, लेकिन बेहद समान हैं, और उनके बीच विशिष्ट अंतर की पहचान करते हैं?दो लगभग समान तस्वीरों के बीच अंतर निर्धारित करें

मेरी प्रेमिका की सफाई के बाद शुक्रवार को मेरे सोफे की तस्वीर लेना और दोस्तों के साथ लंबे समय से पहले, पीने, और रॉक बैंड खेलने के लिए एक उदाहरण लेना होगा। दो दिन बाद मैं सोफे की दूसरी तस्वीर लेता हूं; प्रकाश समान है, सोफे ने एक मिलीमीटर नहीं ले जाया है, और मैं एक निश्चित स्थान में एक तिपाई का उपयोग करता हूं।

छवियों का एक अंतर उत्पन्न करने के लिए मैं कौन से टूल्स का उपयोग कर सकता हूं, या मतभेदों की तीसरी तापमैप छवि? क्या .NET के लिए कोई उपकरण हैं?

उत्तर

1

कोडप्रोजेक्ट पर एंड्रयू किरिलोव के article देखें। उन्होंने गति का पता लगाने के लिए AForge.NET कंप्यूटर दृष्टि पुस्तकालय का उपयोग कर एक सी # आवेदन लिखा था। AForge.NET वेबसाइट पर, मोशन डिटेक्शन के लिए दो फ्रेम अंतरों में से discussion है।

5

यह मुख्य रूप से छवि प्रारूप और संपीड़न पर निर्भर करता है। लेकिन, दिन के अंत में, आप शायद दो रास्टर्स ले रहे हैं और उन्हें पिक्सेल द्वारा पिक्सेल की तुलना कर रहे हैं।

Perceptual Image Difference Utility पर एक नज़र डालें।

+0

लिंक के लिए धन्यवाद, मैं निश्चित रूप से यह देखने के लिए खेलूँगा कि यह देखने के लिए कि यह एक अच्छा कूद-बंद बिंदु है या नहीं। – STW

1

यह एक दिलचस्प सवाल है। मैं आपको किसी विशिष्ट पुस्तकालय में संदर्भित नहीं कर सकता, लेकिन जिस प्रक्रिया के बारे में आप पूछ रहे हैं वह मूल रूप से मोशन मुआवजे का मामूली मामला है। यही तरीका है कि एमपीईजी (एमपी 4, डीवीएक्स, जो कुछ भी) वीडियो वीडियो को इतनी अच्छी तरह से संपीड़ित करने का प्रबंधन करता है; आप उन गति मुआवजे एल्गोरिदम लागू किए जाने के तरीकों के बारे में कुछ जानकारी के लिए एमपीईजी में देख सकते हैं।

एक और बात ध्यान में रखना; जेपीईजी संपीड़न एक ब्लॉक आधारित संपीड़न है; एमपीईजी चीजों से लाता है कि अधिकांश लाभ वास्तव में एक ब्लॉक तुलना करना है। यदि आपकी अधिकांश छवि (पृष्ठभूमि कहें) एक छवि से अगले तक समान है, तो वे ब्लॉक अपरिवर्तित होंगे। यह तुलना करने के लिए आवश्यक डेटा की मात्रा को कम करने का एक त्वरित तरीका है।

+0

ऐसा कुछ है जिसे मैंने कभी नहीं माना, लेकिन एक महान बिंदु – STW

+0

आप पहले की छवि की एक प्रति से एक छोटी क्लिप भी इकट्ठा कर सकते हैं और बाद में छवि की प्रतिलिपि बना सकते हैं। एमपीईजी के साथ संपीड़ित करें, और परिणाम का विश्लेषण करें .... ;-) – RBerteig

2

प्रत्येक छोटे, सामान्य रूप से निकट-अव्यवस्थित अंतर को देखने का सबसे स्पष्ट तरीका, एक्सओआर पिक्सेल डेटा होगा। अगर प्रकाश थोड़ा अलग है, हालांकि, यह बहुत अधिक हो सकता है। मतभेद कितने सूक्ष्म हैं, इस पर निर्भर करता है कि पिक्सेल डेटा का अंतरण (घटाना) अधिक हो सकता है।

+0

मुझे निश्चित रूप से इसके साथ खेलना होगा; यह शायद मेरे कुछ स्तरों में से एक है जिसे मैं अपने कौशल स्तर – STW

+1

के भीतर स्क्रैच से विकसित कर सकता हूं यदि आप स्वयं को कोड करने से पहले इन दृष्टिकोणों को क्रिया में देखना चाहते हैं, तो किसी भी स्तरित रास्टर ग्राफिक्स संपादक के परत संरचना मोड पर नज़र डालें। पेंट.नेट के बारे में मैं सोच रहा हूं, लेकिन यह एक मूल बाइनरी पिक्सेल सेशन है, इसलिए सभी कार्यान्वयन समान होना चाहिए। – bsneeze

2

शुरू करने के लिए एक जगह एक समृद्ध छवि प्रसंस्करण लाइब्रेरी जैसे IM के साथ है। आप IMlab उपकरण के साथ अपने ऑपरेटरों के साथ अंतःक्रियात्मक रूप से डब कर सकते हैं, इसे सीधे सी या सी ++ से कॉल करें या लूआ से इसे चलाने के लिए अपने वास्तव में सभ्य लुआ बाध्यकारी का उपयोग करें। यह बिटमैप्स पर एक विस्तृत श्रृंखला के संचालन के साथ-साथ फ़ाइल स्वरूपों की एक विस्तारणीय लाइब्रेरी का समर्थन करता है।

यहां तक ​​कि अगर आप जानबूझकर कुछ भी नहीं ले जाया गया है, तो आप एक एल्गोरिथ्म जैसे SIFT उपयोग करने के लिए फ्रेम के बीच अच्छा सब-पिक्सेल गुणवत्ता संरेखण पाने के लिए चाहते हो सकता है। जब तक आप कैमरे को ठीक करने और सोफे की गति का पता लगाने के लिए चाहते हैं।

+0

यह बिल्कुल सही जवाब है कि मैं दोनों डरने और उम्मीद कर रहा था; मैं सी या सी ++ या लुआ डेवलपर नहीं हूं - लेकिन यह मेरे पैरों/धड़/सिर/स्नॉर्कल गीले होने के लिए एक मजेदार परियोजना की तरह दिखता है। मैं शायद अपने सिर पर रहूंगा लेकिन मुझे लगता है कि मैंने स्नोर्कल – STW

+1

का उल्लेख किया है यदि आप गोता लगाते हैं, तो आप अपने साथी पुस्तकालयों सीडी और आईयूपी को देखना चाहेंगे। सीडी बिटमैप्स (या स्क्रीन) पर ड्राइंग के लिए एक सामान्य कैनवास प्रदान करता है और आईयूपी एक पोर्टेबल यूआई ढांचा प्रदान करता है। लिंक IMLab पृष्ठ पर हैं। आधिकारिक मेलिंग सूची के माध्यम से www.lua.org पर बहुत सारी लुआ सहायता है, और उपयोगकर्ता को विकी के लिए उपयोगकर्ता, या यहां "लुआ" टैग किया गया है जब आपको इसकी आवश्यकता होने पर ओह-सोशल स्नोर्कल के रूप में सेवा प्रदान की जाती है। ;-) – RBerteig

2

मैंने अपनी कंपनी को टूलकिट (डॉट इमेज) का उपयोग करके यह मुफ्त .NET एप्लिकेशन लिखा था। इसमें एक बहुत ही सरल एल्गोरिदम है, लेकिन यदि आप इसके साथ खेलना चाहते हैं तो कोड ओपन सोर्स है - यदि आप डॉट इमेज की एक प्रति खरीदना नहीं चाहते हैं तो आप एल्गोरिदम को .NET छवि कक्षाओं में अनुकूलित कर सकते हैं।

http://www.atalasoft.com/cs/blogs/31appsin31days/archive/2008/05/13/image-difference-utility.aspx

0

बस का उपयोग करें।नेट इमेजिंग क्लासेस, एक नया बिटमैप() x 2 बनाएं और R & G & बी प्रत्येक पिक्सेल के मानों को देखें, यदि आप अंतर निर्धारित करते समय ए (अल्फा/पारदर्शिता) मान भी देख सकते हैं।

भी एक नोट, getPixel (y, x) विधि का उपयोग करके बहुत धीमा हो सकता है, पूरी छवि (कम सुरुचिपूर्ण) पाने के लिए एक और तरीका है और अगर मैं याद करता हूं कि इसे GetBitmap कहा जाता है या कुछ इसी तरह, इमेजिंग/बिटमैप कक्षाओं में देखें & कुछ ट्यूट्स को पढ़ें जो वास्तव में आपको चाहिए & का उपयोग करना मुश्किल नहीं है, जब तक आपको तीसरे पक्ष को नहीं जाना है।

+0

ps: अगर आपको इस पर अधिक संसाधन/सहायता की आवश्यकता है तो मुझे ईमेल करें, मैंने इस कक्षा के साथ अपने जीवन के 2 साल पहले कुछ समय बिताया :) –