Mein Ziel ist es, ein Histogramm für ein Graustufenbild zu erstellen. Der Code, den ich verwendet wird:Falsche Verwendung von calcHist
Mat img = imread("leeds-castle.jpg",IMREAD_GRAYSCALE);
Mat hst;
int hstsize = 256;
float ranges[] = { 0,256 };
float *hstrange = { ranges };
calcHist(img, 1,0, Mat(), hst, 1, &hstsize,&hstrange,true,false);
int hst_w = 512, hst_h = 400;
int bin_w = cvRound((double)hst_w/256);
Mat histimg(hst_w, hst_h, CV_8U);
normalize(hst, hst, 0, histimg.rows, NORM_MINMAX, -1, Mat());
for (int i = 1; i < 256; i++)
{
line(histimg, Point(bin_w*(i - 1), hst_h - cvRound(hst.at<float>(i - 1))), Point(bin_w*i, hst_h - cvRound(hst.at<float>(i))), 2, 8, 0);
}
imshow("Histogram", histimg);
Der einzige Fehler die Verwendung von calcHist()
Funktion ist. Ist irgendetwas nicht in Ordnung?
Was ist der Fehler? – beaker
Fehler ist \t "C2665 \t 'cv :: calcHist': keine der 3 Überladungen könnte alle Argumenttypen konvertieren" –