- 已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
7小时前关闭。
Improve this question
#include "helpers.h"
#include <math.h>
// Convert image to grayscale
void grayscale(int height, int width, RGBTRIPLE image[height][width])
{
for (int row = 0; row < height; row++)
{
for (int col = 0; col < width; col++)
{
int avg = round((image[row][col].rgbtRed + image[row][col].rgbtGreen + image[row][col].rgbtBlue) / 3.0);
image[row][col].rgbtRed = image[row][col].rgbtGreen = image[row][col].rgbtBlue = avg;
}
}
return;
}
不太清楚我错过了什么。帮助非常感谢
尝试创建灰度过滤器
1条答案
按热度按时间cetgtptt1#
您的代码可以干净地编译。
但是,您的灰度算法是不正确的。正确的公式是:
我们可以通过乘以1将其转换为整数,表示为1000/1000:
下面是一个重构的版本: