小编Alo*_*isD的帖子

尝试不使用opencv calcHist()来计算自己的直方图

我要做的是编写一个函数,该函数计算带有转发的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)

但不幸的是,它不起作用...这里出了什么问题?请帮忙

c++ opencv function image-processing histogram

2
推荐指数
1
解决办法
1394
查看次数

标签 统计

c++ ×1

function ×1

histogram ×1

image-processing ×1

opencv ×1