我使用头文件
(LenaArray.h)
导入了 Lena 的 2D 数组:int lena [511][511] = {162,162,162,etc...}
,但现在我想将它转换成灰度图像,不知道怎么做,请帮忙。这是我想打印的 Lena 图像的链接:Image of Lena I'm trying to print。#include <stdio.h>
#include "LenaArray.h"
int main () {
int i,j;
int width = 511;
int height = 511;
for (i = 0; i < height; i ++ )
{
for(j = 0; j < width; j ++)
{
printf("%d",&lena[i][j]);
}
}
}
i ++
和j ++
是否符合标准。我认为它们不符合标准。 - RobertS supports Monica Celliofloat Gray = 0.2989f*Red + 0.5870f * Green + 0.1140f * Blue
。当然,这会产生与组件相同比例的浮点数灰度值。对于大多数情况,您需要将Gray
四舍五入到最接近的整数以创建结果图像。类似(int)(Gray + 0.5)
。 - Geneint
中,你很可能得到比162(第一个值)大得多的东西,而162看起来像是一个单独的无符号8位数字,范围在0..255之间。并且,根据字节顺序,如果它被打包了,那么它几乎是纯红色、绿色或蓝色,或者几乎是不透明/透明的黑色。虽然有可能被打包,但我同意这种可能性不大。 - Mark SetchellLenaArray.h
文件或链接,谢谢。 - Mark Setchell