使用したライブラリ
Q.2. グレースケール化
画像をグレースケールにせよ。 グレースケールとは、画像の輝度表現方法の一種であり下式で計算される。
Y = 0.2126 R + 0.7152 G + 0.0722 B
まだまだチュートリアルって感じですね。
int main()
{
PPM ppm("imori.pnm");
int width = ppm.Get_width();
int height = ppm.Get_height();
PPM ppm2(width, height);
for(int j=0; j<height; j++)
for (int i = 0; i < width; i++)
{
int r = ppm(i, j, 'r');
int g = ppm(i, j, 'g');
int b = ppm(i, j, 'b');
int y = (std::round)(0.2126 * r + 0.7152 * g + 0.0722 * b);
ppm2(i, j, 'r') = y;
ppm2(i, j, 'g') = y;
ppm2(i, j, 'b') = y;
}
ppm2.Flush("out.ppm");
return 0;
}