tôi đang cố gắng để có được biểu đồ từ màu của tôi (3 kênh) hình ảnh trong OpenCV nhưng mỗi khi tôi làm biểu đồ calcHist như thế này:Unhandled ngoại lệ sau khi đọc histogram (tạo ra với calcHist)
//int histSize[3];
//float hranges[2];
//const float* ranges[3];
//int channels[3];
ColorHistogram::ColorHistogram()
{
// Prepare arguments for a color histogram
histSize[0]= histSize[1]= histSize[2]= 256;
hranges[0]= 0.0; // BRG range
hranges[1]= 255.0;
ranges[0]= hranges; // all channels have the same range
ranges[1]= hranges;
ranges[2]= hranges;
channels[0]= 0; // the three channels
channels[1]= 1;
channels[2]= 2;
}
cv::MatND ColorHistogram::getHistogram(const cv::Mat &image)
{
cv::MatND hist;
// Compute histogram
cv::calcHist(&image,
1, // histogram of 1 image only
channels, // the channel used
cv::Mat(), // no mask is used
hist, // the resulting histogram
3, // it is a 3D histogram
histSize, // number of bins
ranges // pixel value range
);
return hist;
}
Khi tôi cố gắng đưa kết quả vào ví dụ cv::minMaxLoc
Tôi nhận được một ngoại lệ chưa được xử lý.
cv::Mat ColorHistogram::getHistogramImage(const cv::Mat &image){
// Compute histogram first
cv::MatND hist = getHistogram(image);
// Get min and max bin values
double maxVal=0;
double minVal=0;
cv::minMaxLoc(hist, &minVal, &maxVal, 0, 0);
//....
}
EDIT
Tôi không biết nếu điều này là rất quan trọng nhưng tôi nhận được lỗi này trong giao diện điều khiển:
OpenCV Error: Assertion failed (img.dims <= 2) in unknown function, file C:\slave\WinInstallerMegaPack\src\opencv\modules\core\src\stat.cpp, line 788
và image
's tôi dims = 2