質問: ### 前提・実現したいこと 画像を-1/2,0,1/2のマスクで下方向に微分、ができません。助けてください。 ### 該当のソースコード ``` double filter[] ={-1.0/2.0,0,1.0/2.0}; double level; for(int y=1; y
回答: 前提として、0=黒、1=白のグレースケールだと思ってます。 だいたいできてますが指摘は以下の2箇所です。 1. levelの負数判定の場所が違う(バグ) たぶん、iループの後に判定するのが正しいです。 今の状態だと前面黒(全0)になる気がします。 2. levelの計算をループにする意味が無い(非バグ) この程度ならループではなく直書きにした方が良いです。 level += filter[0] * img.pixel[y-1][x]; level += filter[1] * img.pixel[y][x]; level += filter[2] * img.pixel[y+1][x]; 将来的により大きなフィルタを利用するとかであればループでもOKですが 関数化したほうが良いです。 試していませんし、他にバグがあるかもしれませんが参考になれば幸いです。