[c++] 영상 색상 조정

색상 조정을 위한 라이브러리 및 도구

C++에서 영상 처리를 위해 OpenCV(Open Source Computer Vision Library) 라이브러리를 사용하는 것이 일반적입니다. OpenCV는 영상 처리 및 컴퓨터 비전 작업을 위한 강력한 도구 모음을 제공하며, 다양한 색상 조정 알고리즘을 포함하고 있습니다.

영상의 밝기와 대비 조정하기

영상의 밝기와 대비를 조정하는 것은 영상 처리에서 일반적인 작업입니다. OpenCV를 사용하여 영상의 밝기와 대비를 조정하는 방법은 다음과 같습니다.

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image = cv::imread("example.jpg");
    
    // 영상의 밝기와 대비 조정
    cv::Mat adjustedImage;
    double alpha = 1.5;  // 대비 조정을 위한 값
    int beta = 50;       // 밝기 조정을 위한 값

    image.convertTo(adjustedImage, -1, alpha, beta);

    cv::imshow("Original Image", image);
    cv::imshow("Adjusted Image", adjustedImage);
    cv::waitKey(0);
    return 0;
}

위의 코드에서는 alpha 값으로 대비를 조정하고 beta 값으로 밝기를 조정합니다. 이를 통해 영상의 시각적 품질을 향상시킬 수 있습니다.

컬러 밸런스 조정하기

컬러 밸런스는 영상의 색상 톤을 조정하는 데 사용됩니다. 일반적으로 노출된 영상의 색상을 보정하거나 특정 색상을 강조하는 데 사용됩니다. OpenCV를 사용하여 컬러 밸런스를 조정하는 방법은 다음과 같습니다.

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image = cv::imread("example.jpg");
    
    // 컬러 밸런스 조정
    cv::Mat balancedImage;
    float alpha = 1.0;  // 빨강(R) 색상 보정
    float beta = 1.2;   // 파랑(B) 색상 보정

    std::vector<cv::Mat> channels;
    cv::split(image, channels);
    channels[0] *= beta;  // 파랑 채널 보정
    channels[2] *= alpha; // 빨강 채널 보정
    cv::merge(channels, balancedImage);

    cv::imshow("Original Image", image);
    cv::imshow("Balanced Image", balancedImage);
    cv::waitKey(0);
    return 0;
}

위의 코드에서는 각 채널에 대해 각각의 보정 계수를 적용하여 컬러 밸런스를 조정합니다.

이와 같이 C++을 사용하여 OpenCV를 활용하여 영상의 색상을 조정하는 방법을 통해 영상 처리에 대한 기본적인 이해를 할 수 있습니다.