【이미지 처리 100개 노크에 도전】Q.24. 감마 보정

5408 단어 C++이미지 처리

사용한 라이브러리



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

Q.24. 감마 보정



imori_gamma.jpg에 대해 감마 보정(c=1, g=2.2)을 실행하라.

이러한 처리는 친숙합니다. 간단하네요.
int main()
{
    PPM ppm("imori_gamma.pnm");
    int width = ppm.Get_width();
    int height = ppm.Get_height();
    double c = 1., g = 2.2;

    auto carib = [&](double v)
    {
        return pow(v / c, 1. / g);
    };

    PPM ppm2(width, height);
    for(int j=0; j<height; j++)
        for (int i = 0; i < width; i++)
        {
            ppm2(i,j,'r') = carib(ppm(i,j,'r')/255.)*255;
            ppm2(i, j, 'g') = carib(ppm(i, j, 'g')/255.)*255;
            ppm2(i, j, 'b') = carib(ppm(i, j, 'b')/255.)*255;
        }
    ppm2.Flush("out.ppm");
    return 0;
}

좋은 웹페이지 즐겨찾기