ओपनसीवी लाइब्रेरी इसके अनुमानित cv::distanceTransform के लिए उपयोग करता है एक एल्गोरिदम कार्य करता है जो छवि को ऊपर बाएं से नीचे दाएं और पीछे से गुजरता है। एल्गोरिदम का वर्णन "डिजिटल छवियों में दूरी परिवर्तनों" में गनिला बोरफोर्स (कम्प्यूट। विजन ग्राफ। छवि प्रक्रिया 34 3, पीपी 344-371, 1 9 86) से वर्णित है।
एल्गोरिदम कुछ मूल कूद (क्षैतिज, लंबवत, विकर्ण और नाइट चाल) के संयोजन के माध्यम से दूरी की गणना करता है। प्रत्येक कूद लागत खर्च करता है। निम्नलिखित तालिका विभिन्न कूदों के लिए लागत दिखाती है।
+------+------+------+------+------+
| 2.8 |2.1969| 2 |2.1969| 2.8 |
+------+------+------+------+------+
|2.1969| 1.4 | 1 | 1.4 |2.1969|
+------+------+------+------+------+
| 2 | 1 | 0 | 1 | 2 |
+------+------+------+------+------+
|2.1969| 1.4 | 1 | 1.4 |2.1969|
+------+------+------+------+------+
| 2.8 |2.1969| 2 |2.1969| 2.8 |
+------+------+------+------+------+
एक पिक्सेल से दूसरी दूरी की दूरी आवश्यक कूदों की लागत का योग है। निम्न छवि 0-कोशिकाओं से दूरी को एक दूसरे सेल तक दिखाती है। तीर कुछ कोशिकाओं के लिए रास्ता दिखा रहे हैं। रंगीन संख्याएं सटीक (यूक्लिडियन) दूरी को प्रतिबिंबित करती हैं।
एल्गोरिथ्म इस तरह काम करता है: के बाद मुखौटा
+------+------+------+
| 0 | 1 | 2 |
+------+------+------+
| 1 | 1.4 |2.1969|
+------+------+------+
| 2 |2.1969| 2.8 |
+------+------+------+
नीचे सही करने के लिए छवि के शीर्ष बाएं से ले जाया जाता है। इस पास के दौरान, मास्क की सीमाओं के अंदर स्थित कोशिकाएं या तो अपना मान रखती हैं (यदि यह ज्ञात और छोटी है) या वे मास्क-वैल्यू और सेल-वैल्यू (यदि यह ज्ञात है) को सेल से जोड़कर गणना की जाती है मास्क -0-सेल के नीचे। उसके बाद, नीचे दाएं से ऊपर बाईं ओर एक दूसरा पास (एक लंबवत और क्षैतिज फ़्लिप मास्क के साथ) किया जाता है। दूसरे पास के बाद दूरी की गणना की जाती है।
स्रोत
2011-09-15 07:23:37
यह विधि आधुनिक तकनीकों की तुलना में काफी धीमी है (ए मीजस्टर से सबसे उल्लेखनीय है)। –