目录
note
// 彩色图像转灰度图像原理:人眼彩色敏感度
// Gray = 0.299*R + 0.587*G + 0.114*B
code
void MyBRG2Gray(Mat& bgr, Mat& gray) {
if (bgr.type() != CV_8UC3) {
return;
}
int gray_rows = bgr.rows;
int gray_cols = bgr.cols;
int k = 0;
gray = Mat(gray_rows, gray_cols, CV_8UC1);
for (int i = 0; i < bgr.rows; ++i) {
k = 0;
for (int j = 0; j < 3 * bgr.cols; j += 3) {
gray.at<uchar>(i, k) = bgr.at<uchar>(i, j) * 114 / 1000 + bgr.at<uchar>(i, j + 1) * 587 / 1000 + bgr.at<uchar>(i, j + 2) * 299 / 1000;
++k;
}
}
}
test