2017-04-20 12 views
0

Ich versuche, das Histogramm für einen Teil eines Bildes zu berechnen, bevor die Nockenverschiebung berechnet wird. Ich habe ein Beispiel gefolgt - aber bviously nicht eng genug, wie ich einen Fehler sagen, es mit den Parametern keinen passender Funktionsaufruf i Senden für CalcHist ist am ...OpenCV cv :: CalcHist - keine übereinstimmende Funktion

float max_val = 0.f; 
Mat hsv; 
int hbins = 30, sbins = 32; 
int histSize[] = {hbins, sbins}; 
float hranges[] = { 0, 180 }; 
float sranges[] = { 0, 256 }; 
const float* ranges[] = { hranges, sranges }; 
int channels[] = {0, 1}; 
cv::cvtColor(image(_cars[i]), hsv, CV_BGR2HSV); 

cv::calcHist(&hsv, 1, channels, Mat(), // do not use mask 
       thisCar.hist, 2, histSize, ranges, true, false); 
+0

was ist 'thisCar.hist'? Ist es vom Typ 'OutputArray'? –

+0

thisCar.hist ist ein CvHistogramm * – HillInHarwich

Antwort

0

Ich habe einige Probleme hat, mit dieser als Gut. Diese Version Ihres Codes funktionierte jedoch für mich.

float max_val = 0.f; 
cv::Mat img; 
cv::Mat hsv; 
cv::MatND hist; 
int hbins = 30, sbins = 32; 
int histSize[] = {hbins, sbins}; 
float hranges[] = { 0, 180 }; 
float sranges[] = { 0, 256 }; 
const float* ranges[] = { hranges, sranges }; 
int channels[] = {0, 1}; 
cv::cvtColor(img, hsv, CV_BGR2HSV); 
cv::calcHist(&hsv, 1, channels, cv::Mat(), hist, 2, histSize, ranges, true, false); 
Verwandte Themen