OpenCV में यह करना आसान है हालांकि मुझे मूल मैटलैब कार्यान्वयन चाहिए जो काफी कुशल है और आसानी से बदला जा सकता है। विधि उपरोक्त लिंक में निर्दिष्ट कैमरा पैरामीटर लेने में सक्षम होना चाहिए।ज्ञात कैमरा पैरामीटर का उपयोग करके मैटलैब में एक छवि को मैं कैसे रोक सकता हूं?
उत्तर
अब आप उस रिहाई R2013B के रूप में, कंप्यूटर विजन सिस्टम उपकरण बॉक्स का उपयोग कर सकते हैं। Camera Calibrator नामक एक जीयूआई ऐप और एक फ़ंक्शन undistortImage है।
अविश्वास करने का सबसे सरल और सबसे आम तरीका (जिसे लेंस विरूपण के लिए अनवरत या क्षतिपूर्ति भी कहा जाता है) एक चुने हुए आउटपुट फोटो आकार पर आगे विरूपण करना है और फिर बिलीनेर इंटरपोलेशन का उपयोग करके एक रिवर्स मैपिंग करना है।
यहाँ है कोड मैं इस प्रदर्शन के लिए लिखा है:
function I = undistort(Idistorted, params)
fx = params.fx;
fy = params.fy;
cx = params.cx;
cy = params.cy;
k1 = params.k1;
k2 = params.k2;
k3 = params.k3;
p1 = params.p1;
p2 = params.p2;
K = [fx 0 cx; 0 fy cy; 0 0 1];
I = zeros(size(Idistorted));
[i j] = find(~isnan(I));
% Xp = the xyz vals of points on the z plane
Xp = inv(K)*[j i ones(length(i),1)]';
% Now we calculate how those points distort i.e forward map them through the distortion
r2 = Xp(1,:).^2+Xp(2,:).^2;
x = Xp(1,:);
y = Xp(2,:);
x = x.*(1+k1*r2 + k2*r2.^2) + 2*p1.*x.*y + p2*(r2 + 2*x.^2);
y = y.*(1+k1*r2 + k2*r2.^2) + 2*p2.*x.*y + p1*(r2 + 2*y.^2);
% u and v are now the distorted cooridnates
u = reshape(fx*x + cx,size(I));
v = reshape(fy*y + cy,size(I));
% Now we perform a backward mapping in order to undistort the warped image coordinates
I = interp2(Idistorted, u, v);
इसका इस्तेमाल करने के लिए एक पता करने के लिए कैमरे के कैमरा मापदंडों इस्तेमाल किया जा रहा जरूरत है। मैं वर्तमान में PMD CamboardNano जो Cayim.com मंचों के अनुसार यहां इस्तेमाल किया पैरामीटर का उपयोग कर रहा:
params = struct('fx',104.119, 'fy', 103.588, 'cx', 81.9494, 'cy', 59.4392, 'k1', -0.222609, 'k2', 0.063022, 'k3', 0, 'p1', 0.002865, 'p2', -0.001446);
I = undistort(Idistorted, params);
subplot(121); imagesc(Idistorted);
subplot(122); imagesc(I);
यहाँ Camboard नैनो से उत्पादन का एक उदाहरण है। नोट: मैं कृत्रिम रूप से सीमा पंक्तियां जोड़ी को देखने के लिए क्या प्रभाव किनारों (अपने और अधिक स्पष्ट) के करीब विरूपण की थी:
आपके फ़ंक्शन का किस प्रकार का डेटा समर्थन करता है? मैं इसे किसी भी कोशिश के साथ काम नहीं कर सकता ... बीटीडब्लू: फ़ंक्शन के लिए धन्यवाद, यह अजीब है कि मैटलैब ने यह लागू नहीं किया है –
@AnderBiguri इसे कम से कम एक चैनल प्रकार "डबल" के साथ काम करना चाहिए। करने के लिए पहली चीज किसी भी छवि को डबल में परिवर्तित करना है। इसके अलावा यदि आपके पास एक छवि है जो ग्रेस्केल या इसकी गहराई वाली छवि है तो इसे ठीक पैराम के साथ अनइंस्टोर्ट को कॉल करने के लिए ठीक काम करना चाहिए। यदि आपके पास 3 चैनल रंगीन छवि है तो आपको प्रत्येक चैनल पर अलग से अलग करने की आवश्यकता होगी। – twerdster
यह ग्रेस्केल बिटमैप्स के साथ काम नहीं करता है, लेकिन मैं उन्हें दोबारा बदल दूंगा और कोशिश करूँगा! –
- 1. मैं संग्रहीत प्रक्रिया को एक पैरामीटर का उपयोग करके "डेटासेट" कैसे वापस कर सकता हूं?
- 2. अपाचे बटिक का उपयोग करके मैं एक एसवीजी छवि को दूसरे पर कैसे बढ़ा सकता हूं?
- 3. मैं zsh में कैसे रोक सकता हूं?
- 4. सुंदरसप का उपयोग करके मैं HTML से टिप्पणी टैग कैसे रोक सकता हूं?
- 5. Jetty.sh का उपयोग कर जेटी 7 में उत्पन्न प्रक्रिया को मैं कैसे रोक सकता हूं?
- 6. कैमरजेएस का उपयोग करके मैं एक छवि कैसे बदल सकता हूं?
- 7. Passport.js का उपयोग करके मैं OAuth के स्टेट पैरामीटर को कैसे एक्सेस कर सकता हूं?
- 8. मैं NSOperationQueue में NSOperation को कैसे रोक सकता हूं?
- 9. मैं विंडोज़ में फोकस चोरी को कैसे रोक सकता हूं?
- 10. OnGetColors ईवेंट का उपयोग करके मैं एक TColorBox में एक कस्टम रंग कैसे जोड़ सकता हूं?
- 11. रेल में URL पैरामीटर में स्लैश से बचने से मैं link_to को कैसे रोक सकता हूं?
- 12. मैं CruiseControl.NET में समवर्ती बिल्ड को कैसे रोक सकता हूं?
- 13. मैं HTML.ActionLink का उपयोग करके एक छवि कैसे सम्मिलित करूं?
- 14. मैं फ्लोट बाएं कैसे रोक सकता हूं?
- 15. मैं एचटीएमएल में पाठ से एचटीएमएल कैसे रोक सकता हूं?
- 16. इमेजमैजिक का उपयोग करके मैं एक छवि को कई अलग-अलग छवियों में कैसे टुकड़ा कर सकता हूं?
- 17. छवि का मैटलैब आकार
- 18. मैं एचटीएमएल 5 वीडियो टैग का उपयोग कर उच्च CPU उपयोग को कैसे रोक सकता हूं?
- 19. एंड्रॉइड: मैं एक छवि दृश्य पर लागू एक अनंत एनीमेशन कैसे रोक सकता हूं?
- 20. मैं एक छवि को कैसे घुमा सकता हूं?
- 21. मैं मैटलैब कंपाइलर को तेज़ी से कैसे चला सकता हूं?
- 22. मैं std :: copy का उपयोग करके एक मानचित्र को दूसरे में कैसे कॉपी कर सकता हूं?
- 23. php में array_splice का उपयोग करके मैं एक सरणी सदस्य को कैसे हटा सकता हूं?
- 24. `express-js` में` less` का उपयोग करके मैं सीएसएस को कैसे छोटा कर सकता हूं?
- 25. nHibernate का उपयोग करके, मैं असामान्य कैसे पढ़ सकता हूं?
- 26. कैमरा अंशांकन (ओपनसीवी 2.3) - विकृति पैरामीटर का उपयोग कैसे करें?
- 27. अमरूद का उपयोग करके मैं यह कैसे कर सकता हूं?
- 28. मैं टोमकैट पर बेजोड़ अपवादों को कैसे रोक सकता हूं?
- 29. जावास्क्रिप्ट: मैं बैकस्पेस कैरेक्टर को कैसे रोक सकता हूं?
- 30. विजुअल स्टूडियो का उपयोग करके मैं कर्नेल छवि कैसे बना सकता हूं?
अंत में! यह बात बताने के लिए धन्यवाद – twerdster