728x90
이미지를 밝게, 혹은 어둡게 하는 방법을 알아보자.
이미지가 흑백이건 컬러이건 밝기는 빛의 양으로 나타나고 빛의 양은 255에 가까울 수록 많아진다.
for (DWORD y = 0; y < height; y++) {
for (DWORD x = 0; x < width; x++) {
color = m_pImage->GetPixelColor(x, y);
if(nPlusMinus == 0) {
newcolor.rgbRed = clamp(static_cast<int>(color.rgbRed) + byModifyValue);
newcolor.rgbGreen = clamp(static_cast<int>(color.rgbGreen) + byModifyValue);
newcolor.rgbBlue = clamp(static_cast<int>(color.rgbBlue) + byModifyValue);
} else {
newcolor.rgbRed = clamp(static_cast<int>(color.rgbRed) - byModifyValue);
newcolor.rgbGreen = clamp(static_cast<int>(color.rgbGreen) - byModifyValue);
newcolor.rgbBlue = clamp(static_cast<int>(color.rgbBlue) - byModifyValue);
}
m_pImage->SetPixelColor(x, y, newcolor);
}
}
즉 흑백 이미지를 밝게 하고 싶다면 pixel이 나타내는 값을 증가시켜주면 되고 컬러 이미지의 경우 골고루 R, G, B값을 증가시켜주면 된다.
한가지 주의할 점은 픽셀의 할당된 비트에 따라 오버플로우가 발생하지 않도록 exception handling을 해주어야 한다.
계속 밝기를 늘리다가 오버플로우가 발생하면 다시 어두워질 수 있기 때문이다.
반대로 어둡게하는 경우도 언더플로우를 유의해야 한다.
728x90
반응형
'ComputerScience > ImageProcessing' 카테고리의 다른 글
영상처리 - 6. Composition, Subtract (0) | 2021.10.12 |
---|---|
영상처리 - 5. Blur and Sharpen(with Convolution) (0) | 2021.09.24 |
영상처리 - 4. Mosaic (0) | 2021.09.17 |
영상처리 - 2. Histogram (0) | 2021.09.16 |
영상처리 - 1. 이미지의 표현 (0) | 2021.09.16 |