【发布时间】:2015-12-07 04:07:39
【问题描述】:
我正在写一个直方图均衡函数,我不能使用 OpenCV。我的目标是获取灰度图像的直方图并对其进行均衡以使其更清晰。我正在使用 Visual Studio 2015。
这是我目前的代码:
void equalizeHistogram(int *pix, int nc, int nr)
{
int cumhistogram[256];
cumhistogram[0] = pix[0];
for (int i = 1; i < 256; i++)
{
cout << pix[i];
cumhistogram[i] = pix[i] + cumhistogram[i - 1];
}
int b[256];
for (int i = 0; i < 256; i++)
{
b[i] = (double)pix[i] / (nc*nr);
}
int c[256];
for (int i = 0; i < 256; i++)
{
c[i] = 0;
}
int d[256];
for (int i = 0; i < 256; i++)
{
d[i] = round((double)cumhistogram[i] * (255 / (nr*nc)));
}
for (int i = 0; i < 256; i++)
{
c[d[i]] += b[i];
}
int finl[256];
for (int i = 0; i < 256; i++)
finl[i] = round(c[i] * 255);
}
我还发布了this question。我发布了一个新问题,删除了不必要的信息和代码。
【问题讨论】:
-
OpenCV 是开源的,您可以下载它的源代码并从中获得灵感
-
因为在我看来您的previous question 问题几乎 没问题(只需要稍作编辑以删除不必要的部分),我将您代码的相关部分编辑为这个问题,否则看起来像gimme teh codez 问题。对于未来,请在发布新问题之前阅读How to Ask。
-
为什么这个问题的分数是-3(我投票后是-2)?这不是一个坏问题,而且它被认为是重复的问题甚至不再存在。鼓励新用户的方式,SO 社区。 :V
标签: c++ visual-studio image-processing histogram