2011-02-05 24 views
6

मैं एक सी # प्रोग्राम के भीतर एक हिस्टोग्राम बनाना चाहता हूं जो ईएमजीई का उपयोग करता है। ईएमजीई में एमसीवी हिस्टोग्राम नामक एक कक्षा होती है, लेकिन मुझे नहीं पता कि इसका उपयोग कैसे किया जाए।हिस्टोग्राम कैसे बनाएं

+0

इस लेख से पता चलता आरजीबी में हिस्टोग्राम बनाने का तरीका http://stackoverflow.com/questions/8204822/how-to-draw-histogram-using-emgucv-and-c-sharp – JiP

उत्तर

11

यदि आप EmguCV का उपयोग करना चाहते हैं तो आपको डेंस हिस्टोग्राम क्लास का उपयोग करना चाहिए। मैं तुम्हें मूल उपयोग दिखाएंगे:

// Create a grayscale image 
    Image<Gray, Byte> img = new Image<Gray, byte>(400, 400); 
    // Fill image with random values 
    img.SetRandUniform(new MCvScalar(), new MCvScalar(255)); 
    // Create and initialize histogram 
    DenseHistogram hist = new DenseHistogram(256, new RangeF(0.0f, 255.0f)); 
    // Histogram Computing 
    hist.Calculate<Byte>(new Image<Gray, byte>[] { img }, true, null); 

रहे हैं इस तरह के वापस प्रक्षेपण के रूप में DenseHistogram वर्ग के भीतर अन्य आम तरीकों का एक बहुत

+0

thanx .. लेकिन मैं पहले से ही CvInvoke.cvCalHist(), का उपयोग कर हिस्टोग्राम की गणना करता हूं लेकिन मुझे लगता है कि उपरोक्त विधि का उपयोग करना बहुत आसान है। क्या आप मैकविस्टोग्राम और डेन्स हिस्टोग्राम के बीच संक्षेप में अंतर बता सकते हैं? –

+2

डेंस हिस्टोग्राम प्रबंधित कक्षा है जो मैकविस्टोग्राम को लपेटती है। आप डेन्स हिस्टोग्राम कक्षा का निरीक्षण कर सकते हैं और जांच सकते हैं कि इसकी संपत्ति एमसीवी हिस्टोग्राम है। मेरा सुझाव है कि cvinvoke का उपयोग न करें जब ओपनसीवी कार्यक्षमता पहले से ही उचित प्रबंधित कक्षा में लपेटा जा चुका है ... –

3

आप इस कोड का उपयोग कर सकते हैं:

histogramBox.GenerateHistograms(image,bin);    
histogramBox2.Refresh(); 

यह स्वचालित रूप से आपकी तस्वीर का हिस्टोग्राम बनाएगा।

+0

आपको कैसे पता चलेगा कि बिन के लिए कितना मूल्य गुजरना है? – gonzobrains

+0

इसके अलावा, आपके पास दो हिस्टोग्राम बॉक्स क्यों हैं? – gonzobrains

संबंधित मुद्दे