Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Question about histogram output.

I have following code to create histogram, but it gave wrong output. In the program input_vector read 100 double numbers. I want to create a histogram with bin size=5. Output is [0;0;0;0;0]. Can anybody help me to figure out the problem?

vector<double>three_dimensional_shape_retreival_Hough_Transform:: histogram_creation(vector<double> input_vector)
{

    long int i;
    long int j;

    Mat histogram_input(input_vector);

    cout<<"Histogram Input Matrix:"<<histogram_input<<endl;

    int histSize =5;

    float max_distance= *max_element(input_vector.begin(), input_vector.end());
    float min_distance= *min_element(input_vector.begin(), input_vector.end());

    cout<<"Max Element:"<<max_distance<<" "<<"Min Element:"<<min_distance<<endl;

    float range[] = { min_distance,max_distance};
    const float* histRange = { range };

    bool uniform = true;
    bool accumulate = false;

    Mat histogram_output;

    calcHist(&histogram_input,1,0, Mat(), histogram_output,1,&histSize,&histRange,uniform,accumulate);

    cout<<"Histogram Output Matrix:"<<histogram_output<<endl;
}