Voglio creare un istogramma all'interno di un programma C# che usi EMGU. EMGU contiene una classe chiamata MCvHistogram, ma non so come usarla.Come creare un istogramma
risposta
È necessario utilizzare la classe DenseHistogram se si desidera utilizzare EmguCV. vi mostrerò uso di base:
// 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);
Ci sono un sacco di altri metodi comuni all'interno della classe DenseHistogram quali proiezione di fondo
thanx .. ma Ho già calcolato l'istogramma usando CvInvoke.cvCalHist(), ma trovo che il metodo sopra è molto più facile da usare. Puoi elaborare in breve la differenza tra McvHistogram e DenseHistogram? –
DenseHistogram è la classe gestita che avvolge McvHistogram. È possibile ispezionare la classe DenseHistogram e verificare che abbia una proprietà MCvHistogram. Il mio suggerimento è di non usare cvinvoke quando la funzionalità opencv è già stata inserita nella corretta classe gestita ... –
È possibile utilizzare questo frammento di codice:
histogramBox.GenerateHistograms(image,bin);
histogramBox2.Refresh();
E ' creerà automaticamente un istogramma della tua foto.
come fai a sapere quale valore passare per bin? – gonzobrains
Inoltre, perché hai due caselle istogramma? – gonzobrains
In questo articolo viene illustrato come creare istogramma RGB in http://stackoverflow.com/questions/8204822/how-to-draw-histogram-using-emgucv-and-c-sharp – JiP