2012-10-28 6 views
8

छवि अभिन्न से माध्य, std dev, और ढाल कैसे मिलता है? एक छवि को देखते हुए इस प्रकार है जैसे:कंप्यूटिंग छवि अभिन्न

summed area table and normal table of numbers

जैसा कि ऊपर चित्र में दिखाया गया, पर प्रकाश डाला हिस्से की राशि, sum = C+A-B-D खोजने के लिए।
तो हमारे पास sum = 22 है।

मैं कैसे क्रम में अगले आगे बढ़ना को खोजने के लिए कर सकते हैं:

  • मतलब
  • कक्षा देव
  • ढाल
+2

मुझे आपका प्रश्न बिल्कुल नहीं मिला है। क्या आप इसे सुधार सकते हैं? – ArtemStorozhuk

+0

आप कुछ छवि भाग (ROI) के _mean_, _std dev_ और _gradient_ को ढूंढना चाहते हैं? – ArtemStorozhuk

+0

मैं सभी छवि का मतलब, std dev और ढाल ढूंढना चाहता हूं। – Mzk

उत्तर

2

C+A-B-D आप क्षेत्र से सीमांकित में भूरे रंग के स्तर का योग देता है ए, बी, सी, डी, तो, इसका अर्थ यह है कि आपको ज़ोन के क्षेत्र द्वारा इसे डालने की आवश्यकता है:

mean = (C+A-B-D)/4 

देव प्राप्त करने के लिए, आपको वर्ग क्षेत्र तालिका (cv::integral का उपयोग करके आप वर्गों के योग प्राप्त करने के लिए अतिरिक्त पैरामीटर पास कर सकते हैं) की गणना करनी होगी। wikipedia उद्धरण, मानक विचलन वर्ग की जड़ के बराबर है (औसत वर्ग के औसत वर्गों का औसत)। तो ए ', बी', सी ', डी' अपने वर्ग क्षेत्र तालिका के मान संभालने:

dev = sqrt((C'+A'-B'-D')/4 - (mean*mean)) 

तो मतलब कंप्यूटिंग और अभिन्न छवि का उपयोग कर देव बहुत तेज, अभिन्न छवियों का उपयोग विशेष रूप से आप अगर यादृच्छिक स्थानों और छवि पैच के यादृच्छिक आकार पर उन मात्राओं की गणना करना चाहते हैं।

ढाल के बारे में, यह अधिक जटिल है। क्या आप वाकई sobel ऑपरेटर का उपयोग नहीं करना चाहते हैं?

+0

आपने कंप्यूटिंग का मतलब कहा है और अभिन्न छवि का उपयोग कर देव विशेष रूप से यादृच्छिक स्थान या आकार पर तेज़ है। तो क्या आप का मतलब है कि पूरी छवि पर लागू करना धीमा है? सोबेल ऑपरेटर तेजी से है? ढाल की गणना करने के लिए – Mzk

+0

, सोबेल एक सावधानीपूर्वक कार्यान्वयन (आवृत्ति डोमेन में संकल्प) के साथ तेज है। यदि आपको एक निश्चित आकार के पड़ोस के लिए प्रत्येक पिक्सेल पर औसत मान प्राप्त करना है, तो बॉक्स का उपयोग करके फ़िल्टर एक अच्छा विचार हो सकता है, शायद तेज़ लेकिन मुझे यकीन नहीं है। यह मेरी राय में मिलीसेकंड का मामला होगा। लेकिन आप इस तरह से देव नहीं मिलता है। गति की आवश्यकता होने पर इंटीग्रल छवि एक अच्छा विकल्प है – remi

+0

@remi क्या आप सुनिश्चित हैं कि सूत्र सही है? कम से कम औसत मूल्य के लिए? है ना (सी + ए-बी-डी)/4? – maximus

3

तो सी + ए-बी-सी क्षेत्र में सभी ग्रे स्तरों का योग है, तो मतलब

mean = C+A-B-D/4 

लेकिन

mean = C+A-B-D/K 

जहां कश्मीर क्षेत्र में graylevels की संख्या है नहीं है।

इसके अलावा,

dev = sqrt(C'+A'-B'-D'/4 - (mean*mean)) 

stdev, क्योंकि

dev = sqrt((1/N)*sum_N (x_i - u)^2) 

यहाँ समीकरण

dev = sqrt((1/N)*sum_N ((x_i)^2) - u^2) 

के बराबर है उन समीकरणों समान नहीं होते हैं नहीं है।

+0

अच्छा एक। धन्यवाद @ जेएमएचएच। – Mzk

+0

दरअसल, जैसा कि मैंने अपने जवाब में दिखाया है, रेमी मानक विचलन सूत्र को प्राप्त करने के लिए सही रास्ते पर था, वह सिर्फ औसत कारक पर ठोकर खा गया। – xperroni

2

क्या जेएमएच नहीं कहता है, अगर sqrt(C'+A'-B'-D'/K - (mean*mean)) यह नहीं है कि आप अभिन्न छवि से मानक विचलन की गणना कैसे करते हैं, तो आप इसे कैसे करते हैं?

सबसे पहले, मुझे Python/numpy कोड पर स्विच करने दें, इसलिए हमें नोटेशन स्थिरता का एक मामला मिलता है और अभिव्यक्तियों को जांचना आसान होता है। एक नमूना सरणी एक्स को देखते हुए कहते हैं:

X = array([random() * 10.0 for i in range(0, 9)]) 

रूप X की uncorrected sample standard deviation परिभाषित किया जा सकता:

std = (sum((X - mean(X)) ** 2)/len(X)) ** 0.5 # 1 

लागू करने binomial theorem(X - mean(X)) ** 2 को हम पाते हैं:

std = (sum(X ** 2 - X * 2 * mean(X) + mean(X) ** 2)/len(X)) ** 0.5 # 2 

को देखते हुए identities की सारांश ऑपरेशन, हम कर सकते हैं:

std = ((sum(X ** 2) - 2 * mean(X) * sum(X) + len(X) * mean(X) ** 2)/len(X)) ** 0.5 # 3 

अगर हम S = sum(X), S2 = sum(X ** 2), M = mean(X) और N = len(X) कर हम पाते हैं:

std = ((S2 - 2 * M * S + N * M ** 2)/N) ** 0.5 # 4 
अब एक छवि I और दो अभिन्न छवियों के लिए

P और P2 गणना की I (जहां P2 चुकता पिक्सेल के लिए अभिन्न छवि है से मूल्य), हम जानते हैं कि, चार किनारे निर्देशांक A = (i0, j0), B = (i0, j1), C = (i1, j0) और D = (i1, j1), S,के मान दिए गए

S = P[A] + P[D] - P[B] - P[C] 

S2 = P2[A] + P2[D] - P2[B] - P2[C] 

N = (i1 - i0) * (j1 - j0) 

M = S/N 

कौन सा तो (4) रेंज I[A:D] के मानक विचलन उपज उपरोक्त समीकरण के लिए आवेदन किया जा सकता है:, M और N रेंज I[A:D] के रूप में के लिए गणना की जा सकती।

संपादित करें: ऐसा नहीं है कि M = S/N हम समीकरण को (4) निम्न स्थानापन्न और सरलीकरण आवेदन कर सकते हैं पूरी तरह से आवश्यक है, लेकिन नहीं दिया जाता है:,

std = ((S2 - 2 * M * S + N * M ** 2)/N) ** 0.5 

std = ((S2 - 2 * (S/N) * S + N * (S/N) ** 2)/N) ** 0.5 

std = ((S2 - 2 * ((S ** 2)/N) + (S ** 2/N))/N) ** 0.5 

std = ((S2 - ((S ** 2)/N))/N) ** 0.5 

std = (S2/N - (S/N) ** 2) ** 0.5 # 5 

कौन सा काफी समीकरण रेमी दिया के करीब है वास्तव में।