मुझे उप-पिक्सेल सटीकता वाले बाइनरी छवियों के सेट में घटकों के लिए (Centroid) का केंद्र प्राप्त करने की आवश्यकता है।घटक माप [_, "Centroid"] परिणाम ऑफसेट
मेथेमेटिका 8 एक अच्छा इसके साथ आता है:
i = [email protected]"http://i.stack.imgur.com/2pxrN.png";
m1 = ComponentMeasurements[MorphologicalComponents[i], "Centroid"] /.
Rule[_, x_] -> x
(*
-> {{403.229, 453.551}, {660.404, 371.383}, {114.389, 434.646}, {295.5, 206.}}
*)
लेकिन मैं कुछ मुसीबतों माध्यम से चला गया जब उन परिणामों कहीं और किया अन्य गणना के साथ कुछ विसंगतियां दिखाई।
तो मैं अपने ही, शायद अच्छा नहीं लुढ़का:
i = [email protected]"http://i.stack.imgur.com/2pxrN.png";
f[i_] := [email protected]{#[[2]], ImageDimensions[i][[2]] - #[[1]]} & /@
(Mean /@
Function[x, Map[
Position[x, #, 2] &,
Complement[[email protected][x], {0}]]]
[MorphologicalComponents[i]]);
f[i]
Show[i, Graphics[{Red, Disk[#, 10] & /@ f[i]}]]
(*
-> {{403.729, 453.051}, {660.904, 370.883}, {114.889, 434.146}, {296., 205.5}}
*)
आप देख सकते हैं कि वहाँ एक .5 इन परिणामों के बीच ऑफसेट:
Thread[Subtract[m1, f[i]]]
(*
-> {{-0.5, -0.5, -0.5, -0.5}, {0.5, 0.5, 0.5, 0.5}}
*)
पहले मैं पर सोचा था कि समस्या छवि आयामों से भी अजीब या अजीब होने से संबंधित थी, लेकिन ऐसा नहीं है।
मैं ComponentMeasurements[ ..,"Centroid"]
का उपयोग करना पसंद करूंगा और परिणामों को सही करना चाहता हूं, लेकिन मुझे डर है कि भविष्य में एमएमए संस्करण इस व्यवहार को संशोधित कर सकते हैं और परिणामों को खराब कर सकते हैं।
मैं एक ज्ञात छवि के साथ पिछले "अंशांकन" भी चला सकता हूं और ऑफसेट की गणना कर सकता हूं, इसलिए यह स्वतः सही होगा, लेकिन मैं समझना चाहता हूं कि पहले क्या हो रहा है।
क्या यह एक बग है?
यह क्यों हो रहा है के बारे में कोई विचार?
मुझे लगता है कि यह सम्मेलन के साथ ऐसा करना पड़ सकता है जहां पिक्सेल केंद्र समन्वय ग्रिड के सापेक्ष स्थित हैं। यदि एक एल्गोरिदम पिक्सेल-सीमाओं के साथ संरेखित समन्वय ग्रिड मानता है और दूसरा लगता है कि ग्रिड पिक्सेल-केंद्रों के साथ गठबंधन होता है तो आपको असंगत परिणाम मिलते हैं। –