我的代码无法均衡直方图

My Code Doesn't Work to Equalize Histogram

我尝试编写直方图均衡操作代码以增强图像的对比度,但我的代码不起作用。当我显示图像的原始直方图和经过我的代码处理后的直方图时,我看到输出直方图的值只有 0,而其他像素强度没有值。我不知道为什么。这是我的代码:

private: System::Void histogramEqualizationToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

    Raw_Intensity = ConvertBMPToIntensity(Buffer, Width, Height);
    int histogram[256] = { 0 };
    int equalizedHistogram[256] = { 0 };
    int runningSum = 0;
    int numberOfPixels = Width * Height;


    for (int row = 0; row < Height; row++)
    {
        for (int column = 0; column < Width; column++)
        {
            histogram[Raw_Intensity[row * Width + column]]++;
        }
    }

    for (int i = 0; i < 256; i++)
    {
        runningSum += histogram[i];
        int index = round(((runningSum / numberOfPixels) * 255));
        equalizedHistogram[index] += histogram[i];
    }


}

我认为出现了转换问题。 更改此行:

 int index = round(((runningSum / numberOfPixels) * 255));

int index = round(((runningSum*1.0 / numberOfPixels) * 255));