gpt4 book ai didi

c - C 中的二维数组和图像平滑

转载 作者:行者123 更新时间:2023-11-30 17:57:44 26 4
gpt4 key购买 nike

我必须编写一个程序,“将接受图像作为输入,由二维数组像素值表示(为简单起见,每个像素可以用整数表示)。通过将均值滤波器应用于输出结果平滑图像阵列中的每个像素”。

我刚刚学习数组,但我不知道如何启动这个程序。每当我搜索这个主题时,它都会变得非常困惑,因为我找到的每个示例或概念都在使用或谈论实际图像。由于我的程序使用整数,因此我很难区分需要什么和不需要什么。基本上我明白这个前提(至少我认为我明白),每个数字必须取其周围4个数字的平均值,但在基本概念之外,我不知道需要做什么。任何帮助、建议或示例都会很棒。

谢谢

最佳答案

一个关键概念:

int values[20][20];
float intermediates[20][20];
for (int y = 1; y < 19; y++)
for (int x = 1; x < 19; x++)
intermediates = (float)values[y][x];

int means[20][20];
for (int y = 1; y < 19; y++)
for (int x = 1; x < 19; x++)
means[y][x] = (int) ( (float) (intermediates[y-1][x-1] + intermediates[y-1][x] + intermediates[y-1][x+1] + intermediates[y][x-1] + intermediates[y][x] + intermediates[y][x+1] + intermediates[y+1][x-1] + intermediates[y+1][x] + intermediates[y+1][x+1]) / 9.0F); // Divisor is 9 because we added nine values and we're getting the mean

现在有 4 个极端情况:intermediates[0][0]、intermediates[0][19] 等,然后是所有边。

这些值首先被复制到“中间体”中,因为我不想将( float )放在所有内容的前面。

关于c - C 中的二维数组和图像平滑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com