Tôi muốn tạo biểu đồ trong chương trình C# sử dụng EMGU. EMGU có một lớp gọi là MCvHistogram trong đó, nhưng tôi không biết cách sử dụng nó.Cách tạo biểu đồ
Trả lời
Bạn nên sử dụng lớp DenseHistogram nếu bạn muốn sử dụng EmguCV. tôi sẽ chỉ cho bạn cách sử dụng cơ bản:
// 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);
Có rất nhiều các phương pháp thông thường khác bên trong lớp DenseHistogram như Back chiếu
thanx .. nhưng tôi đã tính toán biểu đồ bằng cách sử dụng CvInvoke.cvCalHist(), nhưng tôi thấy phương pháp trên dễ sử dụng hơn nhiều. Bạn có thể giải thích ngắn gọn về sự khác biệt giữa McvHistogram và DenseHistogram không? –
DenseHistogram là lớp được quản lý bao bọc McvHistogram. Bạn có thể kiểm tra lớp DenseHistogram và kiểm tra xem nó có thuộc tính MCvHistogram không. Đề xuất của tôi là không sử dụng cvinvoke khi chức năng opencv đã được gói trong lớp được quản lý thích hợp ... –
Bạn có thể sử dụng đoạn mã này:
histogramBox.GenerateHistograms(image,bin);
histogramBox2.Refresh();
Nó sẽ tự động tạo biểu đồ của hình ảnh của bạn.
làm cách nào để bạn biết giá trị nào cần chuyển cho bin? – gonzobrains
Ngoài ra, tại sao bạn có hai hộp biểu đồ? – gonzobrains
Bài viết này cho thấy làm thế nào để tạo biểu đồ trong RGB http://stackoverflow.com/questions/8204822/how-to-draw-histogram-using-emgucv-and-c-sharp – JiP