MATLAB का उपयोग कर 2 डी छवि से मैं 3 डी स्टीरियोस्कोपिक छवि कैसे बना सकता हूं?छवि उपकरण के साथ MATLAB का उपयोग कर 3 डी स्ट्रोस्कोपिक छवियां कैसे बनाएं?
उत्तर
या तो मैं आपके प्रश्न को गलत समझ रहा हूं (लोगों ने पहले ही बताया है कि यह स्पष्ट नहीं है), या आप 3 डी दृष्टि के तरीके को गलत तरीके से समझ रहे हैं। आप "3 डी ग्लास का उपयोग करके 2 डी छवि नहीं देखते"। 3 डी दृष्टि दो अलग-अलग छवियों, बाएं छवि और दाएं छवि, क्रमशः बाएं आंख और दाहिनी आंखों की सेवा करके हासिल की जाती है। एक मौलिक स्तर पर MATLAB के साथ इसके साथ कुछ भी करने की ज़रूरत नहीं है।
तो, आसानी से समझने योग्य या सुसंगत प्रश्न की अनुपस्थिति में, सबसे अच्छा मैं कर सकता हूं मान लीजिए कि आप this जैसे कुछ चाहते हैं: आपके पास एक एकल 2 डी छवि है, लेकिन आप अभी भी "3 डी छवि प्रारूप में देखना चाहते हैं"। बाईं आंख के लिए
यह तुच्छ नहीं है के लिए
- वाम छवि: उस मामले में, आप किसी भी तरह दो नए छवियों में है कि एकल छवि को विभाजित करने की जरूरत है। आम तौर पर, आप 2 डी छवि में प्रत्येक पिक्सेल के inferring the depth से शुरू करते हैं। चूंकि आप गहराई की जानकारी "अनुमान लगा रहे हैं", इसलिए दो नई छवियां 3 डी दृश्य का एक आदर्श प्रतिनिधित्व नहीं होगी।
अगला, आप अपनी गहराई की जानकारी का उपयोग करके अपनी छवि को परतों में अलग करते हैं। यह मूलतः एक बच्चों की किताब से एक पॉप-अप कटआउट तरह दिखेगा:
अधिक परतों आप के साथ आ सकते हैं, और अधिक सटीक अपने गहराई आकलन है, और अधिक यथार्थवादी अपने 3D प्रतिनिधित्व किया जाएगा ।
अंत में, आप दो अलग-अलग स्थितियों से 2 डी पर स्तरित प्रतिनिधित्व वापस प्रस्तुत करते हैं - एक बाएं आंखों के लिए, और एक दाहिने आंख के लिए। यह आपको आवश्यक दो अलग-अलग छवियां देता है।
संपादित
दूसरा video आप से जुड़ा हुआ जो सामान्यतः एक anaglyph image रूप में जाना जाता है सरलीकृत निर्माण का वर्णन है। इसके लिए 3 डी लाल-सायन चश्मे की आवश्यकता होती है - ये ध्रुवीकृत चश्मे अब वे अधिकांश 3 डी सिनेमाघरों में उपयोग करते हैं। कारण मैं कहता हूं सरलीकृत यह है कि यह अग्रभूमि और पृष्ठभूमि के बीच भेदभाव नहीं करता है।
सर्वोत्तम प्रभाव के लिए, आप अग्रभूमि को पृष्ठभूमि से अलग कर देंगे, और केवल अग्रभूमि पर दृष्टिकोण लागू करेंगे। ऐसा इसलिए है क्योंकि आम तौर पर पृष्ठभूमि में अनंत गहराई होती है और मोनो से स्टीरियो दृष्टि में जाने पर यह नहीं बदलती है। पियानो के मामले में, सबकुछ कम या ज्यादा अग्रभूमि है, इसलिए दृष्टिकोण काम करता है।
एल्गोरिथ्म वीडियो का वर्णन करता है:
- दो छवियों,
im1
औरim2
के साथ शुरू। वे समान हैं im1
के हरे और नीले चैनलों को शून्य पर सेट करें। यह लाल छविim2
के लाल चैनल को शून्य पर सेट करेगा। यह सियान छवि बना देगा।- कुछ निर्दिष्ट राशि (विषय को गहराई के आधार पर) ऐसी है कि
im1
बाईं तरफ है औरim2
सही पर है द्वारा दो छवियों ऑफसेट। आपको यह आदेश सही ढंग से प्राप्त करने की आवश्यकता है क्योंकि 3 डी लाल-सायन चश्मा बाईं ओर लाल होते हैं, और दाईं तरफ सायन होते हैं। - तत्व के लिहाज से इसके प्रदर्शन दो स्थानांतरित कर दिया छवियों की। ध्यान दें कि कोई भी चैनल संतृप्त नहीं होगा।
import cv SHIFT=8 if __name__ == '__main__': import sys _, fname = sys.argv im = cv.LoadImage(fname) size = cv.GetSize(im) width, height = size left = cv.CreateImage(size, im.depth, im.nChannels) right = cv.CreateImage(size, im.depth, im.nChannels) anaglyph = cv.CreateImage((width - SHIFT, height), im.depth, im.nChannels) # # This would be easier if we had COI support for cv.Set, but it doesn't # work that way. # OpenCV uses BGR order (even if input image is greyscale): # http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html # red goes on the left, cyan on the right: # http://en.wikipedia.org/wiki/Anaglyph_image # b = cv.CreateImage(size, im.depth, 1) g = cv.CreateImage(size, im.depth, 1) r = cv.CreateImage(size, im.depth, 1) cv.Split(im, b, g, r, None) zeros = cv.CreateImage(size, r.depth, 1) cv.Merge(zeros, zeros, r, None, left) cv.Merge(b, g, zeros, None, right) # # cvRect is (x, y, width, height) and it MUST be a tuple, not a list # cv.SetImageROI(left, (SHIFT, 0, width - SHIFT, height)) cv.SetImageROI(right, (0, 0, width - SHIFT, height)) cv.Add(left, right, anaglyph, None) cv.SaveImage('anaglyph.jpeg', anaglyph)
यहाँ जो वीडियो में प्रयोग किया जाता है करने के लिए इसी तरह की एक छवि है::
यहाँ उत्पादन है:
यहाँ कुछ अजगर/OpenCV कोड मैंने लिखा है
दुर्भाग्यवश मेरे पास यह काम करने के लिए 3 डी लाल-सायन चश्मे नहीं हैं। लेकिन ऐसा लगता है कि कम से कम सिद्धांत में ऐसा होना चाहिए। अगर मैंने कोई गलती की है तो शायद कोई मुझे सही कर सकता है।
- दो छवियों,
बहुत बहुत शुक्रिया @misha .. लेकिन मैं उस तरह चाहते वीडियो लिंक देखें http://www.youtube.com/watch?v=3r4M_KHt6aw, http://www.youtube.com/watch?v=g_JRHtHpuSY, http : //www.youtube.com/watch? v = zdXxS2KHXlo उस तरह .. - धन्यवाद अभि। –
असल में, पहला लिंक मैंने जो कुछ किया है, उसका वर्णन किया है। गहराई का नक्शा गणना करें, दूसरी छवि बनाएं। मैं वास्तविक विस्थापन फ़िल्टर कार्यान्वयन के बारे में निश्चित नहीं हूँ। दूसरा लिंक वास्तव में सभी प्रासंगिक नहीं है - यह एक स्टीरियो छवि नहीं है, यह सिर्फ छद्म-3 डी प्रभाव प्राप्त करता है। यदि आप यही चाहते हैं, तो यह लागू करने के लिए काफी सरल है, बस वही करें जैसा कि उस वीडियो में वीडियो कह रहा था। मैं बाद में तीसरा वीडियो देख सकता हूं - यह थोड़ा लंबा है, और यह देर हो चुकी है। अपने मूल प्रश्न में प्रासंगिक लिंक को यह स्पष्ट करने के लिए रखें कि आप क्या चाहते हैं। – misha
धन्यवाद @ मिशा हां आपको मिलता है। मैं 2 डी छवि से छद्म-3 डी प्रभाव जोड़ना चाहता हूं। मैं सिर्फ वीडियो लिंक के अनुसार सरल 3 डी प्रभाव प्राप्त करता हूं। आप के बारे में कोड है, तो यह मेरे लिए उत्तर .. - अभि –
यह बहुत अगर आप दो छवियों को देखने का थोड़ा अलग अंक से लिया है करने के लिए आसान है। आप दो छवियों को सुधारकर एक स्टीरियो एनालिफ बना सकते हैं। कंप्यूटर विजन सिस्टम टूलबॉक्स में प्रासंगिक फ़ंक्शन estimateUncalibratedRectifiation
और stereoAnaglyph
हैं। Uncalibrated Stereo Image Rectification उदाहरण देखें।
वैकल्पिक रूप से, आप Stereo Camera Calibrator app का उपयोग करके अपने कैमरों को कैलिब्रेट कर सकते हैं, और फिर recifyStereoImages
फ़ंक्शन का उपयोग कर सकते हैं। Stereo Calibration and Scene Reconstruction देखें।
आपके उत्तर के लिए धन्यवाद .. अगर हमारे पास केवल एक छवि है तो क्या हम स्टीरियोस्कोपिक छवि बना सकते हैं ?? –
- 1. 3 डी voxel matlab
- 2. स्टोर MATLAB 3 डी व्यूपोर्ट
- 3. MATLAB में 1-डी प्लॉट कैसे बनाएं?
- 4. डी 3 प्लगइन कैसे बनाएं?
- 5. MATLAB प्लॉट इंटरैक्टिव कैसे बनाएं?
- 6. डी 3 के साथ एक इंटरेक्टिव ट्री चार्ट कैसे बनाएं?
- 7. आईओएस - 2 डी छवि 3 डी
- 8. 3 डी-स्पेस
- 9. डब्ल्यूपीएफ - टेम्पलेट के साथ छवि बटन कैसे बनाएं
- 10. मैटलैब में 3 आयाम मैट्रिक्स कैसे बनाएं, जैसे matlab a (:,:, :)
- 11. MATLAB: प्रति स्तर 4 डी प्लॉट कैसे बनाएं
- 12. छवि मान्यता और 3 डी
- 13. MATLAB में 2-डी मुखौटा के साथ मैं 3-डी मैट्रिक्स को कैसे इंडेक्स कर सकता हूं?
- 14. 2 डी और 3 डी संदर्भ दोनों का उपयोग कर कैनवास 3 डी ड्राइंग
- 15. matlab 3 डी जाल और लाइन साजिश
- 16. छवि पर 3 डी रोटेशन
- 17. ffmpeg का उपयोग कर एक स्थिर पृष्ठभूमि छवि पर पारदर्शिता के साथ ओवरले एनिमेटेड छवियां?
- 18. डब्ल्यूपीएफ 3 डी - नेस्टेड मॉडल 3 डी ग्रुप का उपयोग कर 3 डी दृश्य में पोजिशनिंग विजुअल 3 डी तत्व बदलता है?
- 19. छवि मैजिक ओवरलेइंग छवियां
- 20. छवि पर छवियां
- 21. डी 3 फोर्स निर्देशित ग्राफ का उपयोग कर नोड्स
- 22. Javah उपकरण का उपयोग कर
- 23. 3 डी सरणी सी ++ का उपयोग कर पूर्णांक [] ऑपरेटर
- 24. 3 डी
- 25. ज़ेंड_Mail और = 0 डी = 0 ए = 3 डी = 3 डी = 3 डी = 3 डी = 3 डी
- 26. आर का उपयोग कर 3 डी में घनत्व का एक सेट कैसे प्लॉट करें?
- 27. स्टीरियो 3 डी पुनर्निर्माण के साथ ओपनसीवी
- 28. पाइथन के साथ 3 डी गेम,
- 29. 2 डी से 3 डी
- 30. मैटलैब: 3 डी
प्रश्न क्या है? आपने क्या प्रयास किया है – carlosdc
मुझे लगता है कि यदि आपके पास 3 डी डेटा है तो इसे बनाना आसान होगा, तब से आपको केवल अलग-अलग कोणों के साथ 2 अनुमान बनाना होगा। –
@carlosdc @Itamar Katz: अगर मैं 3 डी ग्लास का उपयोग करके 2 डी छवि देखना चाहता हूं तो इसे 3 डी छवि प्रारूप में देखा गया .. इस तरह। या कोई अन्य तरीका इसे 3 आयाम के साथ देख सकता है? –