2

我有一个 C++ 程序,它读取图像文件,处理标题,然后将图像的颜色数据存储在指向 chars 指针的指针中

unsigned char** pixelData = new unsigned char*[header.width*header.height];
for(int i=0;i<header.width*header.height;i++)
    pixelData[i] = new unsigned char[bytes2read]; //bytes2read is 3(rgb) or 4(rgba)

如果我想将图像重新缩放到原始大小的一半,我该怎么做?有谁知道一个方便的算法吗?

4

2 回答 2

0

最简单的方法就是简单地平均每个 2x2 像素正方形的 R、G、B 值。

通常,您正在做的是对图像应用过滤器以确定每个输出像素的新值。平均值是所谓的宽度为 2 的框式过滤器。您可以使用其他过滤器来提供更好或更差的结果,但平均值是我要开始的地方。

于 2013-01-22T16:41:56.110 回答
0

使用 OpenGL 怎么样。这对于 OpenGL 来说几乎是微不足道的,最好的部分是该操作是 GPU 加速的。

于 2013-01-22T15:52:40.833 回答