【이미지 처리 100개 노크에 도전】Q.20. 히스토그램 표시

5164 단어 C++이미지 처리

사용한 라이브러리



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

Q.20. 히스토그램 표시



matplotlib을 사용하여 imori_dark.jpg의 히스토그램을 표시하십시오.

간단합니다. 주의가 필요한 것은, 여기서 말하는 히스토그램은 R채널의 히스토그램+G채널의 히스토그램+B채널의 히스토그램을 상정하고 있는 것 같습니다.
처음에는 그레이 스케일에 대한 히스토그램이라고 생각했습니다. 정답 출력이 게재되고 있으므로 조금 생각하면 알겠지만, 조금 불친절하게 느꼈습니다. 특히 언급하지 않고 그레이 스케일 이미지가 대상이라고 가정한 문제도 있습니다.
int main()
{
    PPM ppm("imori_dark.pnm");
    int width = ppm.Get_width();
    int height = ppm.Get_height();

    int N = 256;
    std::vector<int> hist(N);
    for (int n = 0; n < N; n++)
    {
        hist[n] = 0;
    }

    for(int j=0; j<height; j++)
        for (int i = 0; i < width; i++)
        {
            hist[ppm(i, j, 'r')]++;
            hist[ppm(i, j, 'g')]++;
            hist[ppm(i, j, 'b')]++;
        }

    for (int n = 0; n < N; n++)
    {
        std::cout << n << " " << hist[n] << std::endl;
    }


    return 0;
}



이것으로 20문 완료입니다!

좋은 웹페이지 즐겨찾기