本文介绍了如何在C或C ++中将彩色图像转换为灰度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在C或C ++中将彩色图像转换为灰度?
此处存在的所有线程均在C#
how to convert coloured image to grayscale in C or C++ ?
All the threads present here give solution in C#
推荐答案
void convert(CImage* pcImage)
{
ASSERT(pcImage);
int iWidth(pcImage->GetWidth());
int iHeight(pcImage->GetHeight());
if (iWidth && iHeight) {
for (int i = 0; i < iWidth; i++) {
for (int j = 0; j < iHeight; j++) {
COLORREF clrOriginal(pcImage->GetPixel(i, j));
float fR(GET_R(clrOriginal));
float fG(GET_G(clrOriginal));
float fB(GET_B(clrOriginal));
float fWB = sqrt((fR * fR + fG * fG + fB * fB) /3);
pcImage->SetPixel(i, j, RGB(fWB, fWB, fWB));
}
}
}
}
这篇关于如何在C或C ++中将彩色图像转换为灰度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!