बैरल/पिनक्यूशन विरूपण के लिए छवि में मूल (x, y) के (x ', y') को प्राप्त करने के तरीके को समझ नहीं सकता है।बैरल/पिनक्यूशन विरूपण के लिए सूत्र
13
A
उत्तर
18
0
opencv C++
IplImage* barrel_pincusion_dist(IplImage* img, double Cx,double Cy,double kx,double ky)
{
IplImage* mapx = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
IplImage* mapy = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
int w= img->width;
int h= img->height;
float* pbuf = (float*)mapx->imageData;
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
float u= Cx+(x-Cx)*(1+kx*((x-Cx)*(x-Cx)+(y-Cy)*(y-Cy)));
*pbuf = u;
++pbuf;
}
}
pbuf = (float*)mapy->imageData;
for (int y = 0;y < h; y++)
{
for (int x = 0; x < w; x++)
{
*pbuf = Cy+(y-Cy)*(1+ky*((x-Cx)*(x-Cx)+(y-Cy)*(y-Cy)));
++pbuf;
}
}
/*float* pbuf = (float*)mapx->imageData;
for (int y = 0; y < h; y++)
{
int ty= y-Cy;
for (int x = 0; x < w; x++)
{
int tx= x-Cx;
int rt= tx*tx+ty*ty;
*pbuf = (float)(tx*(1+kx*rt)+Cx);
++pbuf;
}
}
pbuf = (float*)mapy->imageData;
for (int y = 0;y < h; y++)
{
int ty= y-Cy;
for (int x = 0; x < w; x++)
{
int tx= x-Cx;
int rt= tx*tx+ty*ty;
*pbuf = (float)(ty*(1+ky*rt)+Cy);
++pbuf;
}
}*/
IplImage* temp = cvCloneImage(img);
cvRemap(temp, img, mapx, mapy);
cvReleaseImage(&temp);
cvReleaseImage(&mapx);
cvReleaseImage(&mapy);
return img;
}
और अधिक जटिल रूप में सरल बैरल \ पिनकुशन विरूपण http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html
1
बहुपद रेडियल विरूपण मॉडल आप Fitzgibbon, 2001
में पा सकते हैं का एक सन्निकटन
जहां वां और आरयू विरूपण के केंद्र से दूरी हो रहा है। यह कंप्यूटर दृष्टि और छवि प्रसंस्करण उद्देश्यों के लिए एक चौड़े कोण छवि छवि से विकृति को फ़िल्टर करने के लिए भी प्रयोग किया जाता है।
आप सिद्धांत की एक अधिक विस्तृत विवरण और undistortion छानने लागू करने के लिए शेडर कोड (और भी आगे परिवर्तन) यहाँ पा सकते हैं: http://marcodiiga.github.io/radial-lens-undistortion-filtering
मैं भी कागजात पोस्टिंग कर रहा हूँ आप पर एक नज़र रखना चाहिए यदि आप
- झांग जेड (1 999) पोस्ट किए गए विधि के लिए गणितीय विवरण जानना चाहते हैं। अज्ञात अभिविन्यास से विमान को देखकर लचीला कैमरा अंशांकन
- एंड्रयू डब्ल्यू फिट्जगिबोन (2001)। एकाधिक दृश्य ज्यामिति और लेंस विरूपण के साथ-साथ रैखिक अनुमान
संबंधित मुद्दे
- 1. छवि विरूपण एल्गोरिदम के लिए संसाधन
- 2. ओपनगल परिप्रेक्ष्य विरूपण
- 3. एंड्रॉयड AudioRecord विरूपण साक्ष्य
- 4. गुम javax.transaction.jta विरूपण साक्ष्य
- 5. एक सूत्र
- 6. वर्कअराउंड (रों) Maven युद्ध प्लगइन त्रुटि के लिए: विरूपण साक्ष्य
- 7. मजबूत विरूपण के बिना बनावट वाले गोले
- 8. विरूपण/खींचने के बिना पूर्णस्क्रीन कैमरा पूर्वावलोकन
- 9. Buiding Hadoop - गुम विरूपण साक्ष्य
- 10. आर में सूत्र में सूत्र का एक हिस्सा कैसे चुनें?
- 11. एक्सेल सूत्र एक तारीख
- 12. सामान्य सूत्र Polyhedron वॉल्यूम
- 13. निर्धारित करें कि कोई सूत्र (मान) किसी भी सूत्र
- 14. मठ दूसरा धब्बा सूत्र
- 15. NHibernate संपत्ति सूत्र फिल्टर
- 16. पेज गिनती की गणना करने के लिए सबसे सरल सूत्र?
- 17. "*" (वाइल्डकार्ड) संस्करण संख्याओं के लिए .NET में सूत्र क्या है?
- 18. कैसेंड्रा UnavailableException() सूत्र में
- 19. सिंक्रनाइज़ किया जा रहा विरूपण साक्ष्य संस्करणों
- 20. Maven 3: एक विरूपण साक्ष्य SCP
- 21. गुम विरूपण साक्ष्य com.sun.jdmk: jmxtools: जार: 1.2.1
- 22. क्रिस्टल रिपोर्ट में सूत्र सूत्र के योग की गणना कैसे करें?
- 23. प्रतीक्षा (इसे POSIX सूत्र, C++)
- 24. सूत्र में व्याख्या लाइन डंप
- 25. कई पिक्सेल के लिए अल्फा मिश्रण के लिए सूत्र क्या है?
- 26. जेनकींस Maven करने के लिए गठजोड़ जार तैनात - विरूपण साक्ष्य नामकरण
- 27. Maven: कलाकृतियों जो एक और विरूपण साक्ष्य पर निर्भर करते हैं खोजने के लिए कैसे
- 28. लेटेक्स बड़े डिवीजन साइन इन गणित सूत्र
- 29. आर सूत्र और परिणामी गुणांक नाम
- 30. एकाधिक सूत्र एक ही बहु-आयामी सरणी
जब आप इस कोड को ट्रिमिंग के बिना ओपनजीएल में पुन: प्रयास करते हैं (जैसे कि आपके पास पहले 2 चित्र हैं) तो छवि अलग दिखती है। मुझे इस एल्गोरिदम का उपयोग करके और अधिक सफलता मिली http://www.geeks3d.com/20140213/glsl-shader-library-fish-eye-and-dome-and-barrel-distortion-post-processing-filters/2/ – user819640
आपका रूपांतरण एक विकृत छवि में एक रेक्टिलिनर छवि को बदलने के लिए केवल वैध है, उस विरूपण को विपरीत करने के लिए आपको उलटा फ़ंक्शन की आवश्यकता है जो 'p1 = cbrt (2/(3 * a)) है; \t पी 2 = सीआरटीटी (वर्ग (3 * ए) * वर्ग (27 * ए * एक्स * एक्स + 4) - 9 * ए * एक्स); \t पी 3 = सीआरटीटी (2) * पाउ (3 * ए, 2/3); \t वापसी पी 1/पी 2 - पी 2/पी 3; ' –