컬러영상을 그레이스케일로 변환

전종원·2022년 11월 1일
0

1. RGB 색상을 그레이스케일로 변환

변환 공식

  • Y = 0.299R + 0.587G + 0.114B
  • 장점: 데이터 저장용량 감소, 연산처리속도 향상
  • 단점: 색상정보 손실

코드

int main() {
	mat src = imread("lenna.bmp");
	
    
#if 0
	Mat dst = Scalar(255, 255, 255) - src;
#else
	Mat dst(src.rows, src.cols, CV_8UC1);
	
    for(int y = 0; y < dst.rows; y++) {
    	for(int x = 0; x < dst.cols; x++) {
        	Vec3b v = src.at<Vec3b>(y,x);
            uchar b = v[0];
            uchar g = v[1];
            uchar r = v[2];

            dst.at<uchar>(y,x) = uchar(0.299*r + 0.587*g + 0.114*b); 
        }
    }
#endif
	imshow("src", src);
    imshow("dst", dst);
    waitKey();
}

0개의 댓글