灰度图像(黑白照片)
我们通常说的黑白照片并不是数字图像中的二值图,而是灰度图。由彩色图像转化为灰度图像的过程叫做灰度化处理。一般情况下彩色图像每个像素用3个字节表示,每个字节对应着R、G、B分量的亮度(红、绿、蓝),转换后的灰度图像的一个像素用一个字节表示该点的灰度值,它的值在0~255之间,数值越大,该点越白,即越亮,越小则越黑。转换关系为:
其中Gray(i,j)为转换后的灰度图像在(i,j)点处的灰度值。
灰度图只能表现256种颜色,灰度化处理还有其他的方法,如:取3个分量的最大值、最小值、算术平均值等,目的都是使颜色的R、G、B分量值相等。
//黑白
Mat BlackAndWhite(Mat src) {
Mat output(src.size(), CV_8UC1);
for (int i = 0; i < src.rows; i++) {
for (int j = 0; j < src.cols; j++) {
output.at<uchar>(i, j) = 0.11 * src.at<Vec3b>(i, j)[2] + 0.59 * src.at<Vec3b>(i, j)[1] + 0.30 * src.at<Vec3b>(i, j)[0];
}
}
return output;
}