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

CS50 Pset4模糊函数异常:输出图像近乎全红求排查

问题排查与修复

你的blur函数出现全红问题,核心是蓝绿通道的平均值计算逻辑错误,属于局部疏漏,具体问题和修复如下:

错误点定位

在计算三个通道的平均值时,你错误地将蓝、绿通道的平均值都复用了红色通道的计算结果:

avgRed = round(avgRed / counter);
avgBlue = round(avgRed / counter);  // 这里错用了avgRed,应该用avgBlue的总和
avgGreen = round(avgRed / counter); // 同样错用了avgRed,应该用avgGreen的总和

这就导致蓝、绿通道的数值被错误地计算为红色平均值再除以counter,结果自然极低,图像呈现全红状态。

修复后的代码片段

把蓝、绿通道的计算改成使用各自的总和:

avgRed = round(avgRed / counter);
avgBlue = round(avgBlue / counter);  // 修正为avgBlue的总和除以counter
avgGreen = round(avgGreen / counter); // 修正为avgGreen的总和除以counter

其他注意事项

  • 你当前的imageCopy数组声明是正确的(栈上的二维数组),注释掉的malloc/free逻辑不需要启用,栈数组已经能满足需求,且避免了额外的内存管理问题。
  • 边界判断的逻辑是正确的,已经处理了图像边缘像素的邻域范围,这部分无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:33:21