c++ - 将二维整数数组(与图像相关)调整为特定大小?

标签 c++ arrays image vector

我有一个如下所示的二维数组:

255 255 255 255 255
255 128 128 128 255
255 128 255 255 255
255 128 128 128 255
255 255 255 255 255

上面的数字表示图像的 RGB 值(R = G = B,灰度图像)。在本例中,它是字母“C”的 5x5 像素图像。

我想将这个 5x5 数组的大小调整为其他尺寸,同时保持纵横比。转换为 20x20 数组很简单,因为 1 个数组元素在宽度和高度上被放大了 2 倍:

255

becomes

255 255
255 255

但是如果我想要任意大小,比如 32x32 怎么办?图像处理程序使用什么方法来调整图像大小?需要强调的是:宽高比保持不变。

澄清一下:我只需要缩放一个二维数组并保持一定的保真度。尽管看起来如此,但我并没有使用图像,但使用图像缩放的概念可能会有用(?)。

最佳答案

有很多方法可以调整图像大小,在图像处理应用程序中更常见的是插值抽取(如果您分别要放大或缩小) . Boost GIL正是您要找的东西。否则,您可以尝试重写自己的插值函数。在您的情况下,没有必要重新发明轮子,应该研究 Boost。

关于c++ - 将二维整数数组(与图像相关)调整为特定大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497003/

相关文章:

c# - 处理位图图像的通用列表

c++ - 如何将 "normal"C++ 类转换为模板?

c++ - 按字母顺序排列的字符串数组排序

php - 使用 foreach PHP 排序数据显示最近 30 天的数据

android - 如何在共享首选项中保存纬度和经度(位置)

java - 二值图像数据的高效存储

php - 如何从PHP中的路径找到图像的扩展名?

c++ - gdb - 确定段错误的原因

c++ - 如何在 fork 上重新初始化 Boost Log 库?

c++ - 对于稀疏矩阵的存储,最好是 vector 或每行不同的 vector