EMGU kullanan bir C# programı içinde histogram oluşturmak istiyorum. EMGU içinde MCvHistogram adlı bir sınıf var, ama nasıl kullanacağımı bilmiyorum.Histogram nasıl oluşturulur?
cevap
EmguCV'yi kullanmak istiyorsanız, DenseHistogram sınıfını kullanmalısınız. Sana temel kullanımını göstereceğiz:
vardır// 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);
böyle Arka Projeksiyon olarak DenseHistogram sınıfının içindeki diğer ortak yöntemler bir çok
teşekkürler .. ama Ben zaten CvInvoke.cvCalHist(), kullanarak histogramı hesaplamak ama yukarıdaki yöntemi kullanmak çok daha kolay. McvHistogram ve DenseHistogram arasındaki farkı kısaca anlatabilir misiniz? –
DenseHistogram, McvHistogram'ı saran yönetilen sınıftır. DenseHistogram sınıfını inceleyebilir ve bir MCvHistogram özelliği olup olmadığını kontrol edebilirsiniz. Benim önerim, opencv işlevselliği düzgün yönetilen sınıfta zaten sarılmış olduğunda cvinvoke kullanmamaktır ... –
Bu kod parçacığını kullanabilirsiniz:
histogramBox.GenerateHistograms(image,bin);
histogramBox2.Refresh();
It resminizin histogramını otomatik olarak oluşturur.
Bin için hangi değerin geçtiğini nasıl biliyorsunuz? – gonzobrains
Ayrıca, neden iki histogram kutunuz var? – gonzobrains
Bu makale RGB histogram nasıl oluşturulacağını gösterir http://stackoverflow.com/questions/8204822/how-to-draw-histogram-using-emgucv-and-c-sharp – JiP