もしimage processing toolboxをお持ちであれば、stdfiltという関数がされたいことそのものずばりを行うことができます。for文使うとどうしても処理速度が遅くなるので、基本的にはこういった用意された関数を使うのをおススメいたします。
同じようなことができる関数としてcolfiltというものもあります。
もし、勉強がてら自分で実装したいということでしたらやり方としては二通り思いつきます。
1.窓の大きさをmin,max関数で調整
おそらく中心ピクセルに対して±4ピクセルでブロックを定義していると思いますが、その際に、
% 中心ピクセルのインデックスをx_idx,y_idxとすると
x1 = max(1,x_idx-4); % インデックスがゼロ以下にならないように調整
x2 = min(W,x_idx+4); % インデックスが画像サイズを超えないように調整。Wは画像の横幅
% y方向も同様
といった感じで、画像サイズを超えないように定義します。そうすると局所領域が[y1:y2,x1:x2]という形で得られますので、これを抜き出してきてstdを計算します。
2.最初に画像をパディングしてしまう
窓がはみ出す分を始めから想定してその分のデータを作っておくという考え方です。これについては、padarray関数を見てみてください。イメージがわかると思います。パディングした後で、本来の画のサイズ分だけforループを回せばいいです。パディングの仕方によって値が変わってきますが、symmetric(鏡像)が無難かと思います。