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

CS50 PSet4 Filter-more:模糊函数代码异常求助(3x3/4x4图像失效)

图像模糊函数Bug排查

核心问题:边界判断的笔误

你的代码里存在一个低级笔误,直接导致3x3、4x4这类小尺寸图像的模糊计算完全错误:
在邻域像素的列边界判断中,你把j+l写成了j+1:

// 错误代码
if((j+l)<0 || (j+1)>=width)  

这个错误会让程序错误地跳过大量有效邻域像素:

  • 对于小尺寸图像,比如3x3宽的图,当处理最后一列(j=2)时,j+1=3等于width,会直接跳过所有l偏移的像素,导致sum和counter计算完全错误
  • 大尺寸图像的中间像素因为j+1远小于width,这个错误不会触发,所以看起来中间、边缘像素好像正常,但实际边缘区域的计算依然是错的,只是小图的错误更显眼

修正方案

把判断条件里的j+1改成正确的j+l即可:

// 修正后的代码
if((j+l)<0 || (j+l)>=width)  

验证说明

修正后,邻域像素的边界判断会正确识别哪些像素在图像范围内,sum和counter的计算会准确对应当前像素的所有有效邻域(最多9个,边缘角落会更少),模糊结果就能符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:50:22