图像灰度化有锯齿感如何解决

进行图像灰度化,结果有锯齿感
问题相关代码
char* buffer = new char[bmpFlieHead.bfSize - 54];//图像像素值
int lineByte = (bmpWidth*bmpInfHead.biBitCount / 8 + 3) / 4 * 4;//图像每行字节数
int grayBuffer[bmpHeight,bmpWidth];
for(int i = 0; i < bmpHeight; i++)
{
lineGray = 0;
for(int j = 0; j < lineByte - 2; j++)
{
//char* color = &buffer[i*lineByte + j];
grayBuffer[i,lineGray]=-buffer[i*lineByte + j]+127);
buffer[i*lineByte + j] =grayBuffer[i,lineGray
buffer[ilineByte + j + 1] = buffer[ilineByte + j];
buffer[ilineByte + j + 2] = buffer[ilineByte + j];
j += 2;
lineGray++;
}
}
运行结果及报错内容

img

应该是数据类型转换引起的,但是由于buffer是char变量不能用atoi,如果改成string变量后,图片之间一篇白色
我想要达到的结果

img

拉伸一下吧