【发布时间】:2022-07-08 00:01:13
【问题描述】:
所以我写了这段代码
void grayscale(int height, int width, RGBTRIPLE image[height][width])
{
for (int i = 0 ; i < (height) ; i++)
{
for(int j = 0 ; j <(width); j ++){
float blue = image[i][j].rgbtBlue;
float green = image[i][j].rgbtGreen;
float red = image[i][j].rgbtRed;
int average_color = round((blue + green + red) /3);
image[i][j].rgbtBlue = image[i][j].rgbtGreen = image[i][j].rgbtRed = average_color;
// red = blue = green = average_color; WHY IS THAT WORNG INSTEAD OF THE LINE ABOVE?
}
}
return;
}
在评论中,我第一次尝试了代码,但没有以这种方式获得 average_color 的值?
只有当我这样尝试时
image[i][j].rgbtBlue = image[i][j].rgbtGreen = image[i][j].rgbtRed = average_color;
为什么 red=blu=green=avergae_color;不行吗?
【问题讨论】:
-
红色、蓝色和绿色不是 x,y 处像素的各自 R B G 分量。
-
您是否希望红色、蓝色和绿色指向图像组件?
-
是的,我认为他们会指向那里,出于纯粹的人类逻辑
-
好吧,只有指针指向某个地方。 ;)
标签: c