【发布时间】:2014-11-16 07:36:07
【问题描述】:
void scale_brightness( uint8_t array[],
unsigned int cols,
unsigned int rows,
double scale_factor )
{
for (int x = 0; x < (cols*rows); x++)
{
array[x] = round(scale_factor * (double)(array[x]));
if (array[x] > 255 )
{
array[x] = 255;
}
}
}
这个函数应该将像素乘以一个比例因子,它会根据该因子乘以什么来使图像变亮或变暗。如果相乘的图像大于 255,则像素的阈值为 255。我尝试了代码并输入了 scale_brightness (array, 256, 256, 2)。这应该将每个像素乘以 2,因此它应该使图像变亮。但是当我运行它时,它变成了全黑,与它应该做的完全相反。我也试过做0,结果变黑了。任何其他颜色都给了我深灰色。有人能帮我找出为什么会这样吗?
【问题讨论】: