You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现图像3x3邻域颜色平均的程序未通过测试如何排查

代码Bug排查提示

你代码中的问题主要出在以下几个位置:

  • 边界判断逻辑错误
    目前仅对lowi < 0、lowj < 0做了拦截,没有判断lowi >= height、lowj >= width的越界场景,只有角落像素不需要判断上溢场景,所以仅角落测试能通过。
    另外你直接修改循环变量lowi、lowj的写法是错误的,这会打乱循环计数逻辑,正确写法是判断坐标合法后再累加像素值,不合法直接跳过本次循环即可。
  • 平均计算代码位置错误
    你把像素值赋值的代码放在了lowi的内层循环里,也就是说每遍历完一行邻域就会重写一次当前像素值,等整个3x3邻域遍历完时,你用的是中途错误的计算结果,而非所有邻域累加后的总平均值。正确写法是把赋值逻辑挪到两层邻域遍历循环的外面,等所有邻域值累加完成后再计算平均赋值。
  • 直接修改原图像数据
    你在遍历过程中直接覆盖了原image的像素值,后续计算其他像素的邻域平均值时,读取的是已经被模糊处理后的新值,而非原始图像的像素值,会导致最终计算结果偏差。你需要额外申请一个临时二维数组存储所有像素的计算结果,等所有像素的平均值都计算完成后,再统一写回原image数组。

内容的提问来源于stack exchange,提问作者Wojtek Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 20:15:03