【화상 처리 100개 노크에 도전】Q.2. 그레이 스케일화

4977 단어 C++이미지 처리

사용한 라이브러리



【화상 처리 100개 노크】 독자적인 화상 입출력 클래스를 만든다

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;
}

좋은 웹페이지 즐겨찾기