我要做的是编写一个函数,该函数计算带有转发的Bins(anzBin)数的直方图范围被划分的灰度图像的直方图。然后,我遍历Image Pixels将其值补偿为不同的Bin,如果值合适,则将Bin的值增加1
vector<int> calcuHisto(const IplImage *src_pic, int anzBin)
{
CvSize size = cvGetSize(src_pic);
int binSize = (size.width / 256)*anzBin;
vector<int> histogram(anzBin,0);
for (int y = 0; y<size.height; y++)
{
const uchar *src_pic_point =
(uchar *)(src_pic->imageData + y*src_pic->widthStep);
for (int x = 0; x<size.width; x++)
{
for (int z = 0; z < anzBin; z++)
{
if (src_pic_point[x] <= z*binSize)
{
histogram[src_pic_point[x]]++;
}
}
}
}
return histogram;
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,它不起作用...这里出了什么问题?请帮忙