Sobel Filter

エッジ検出に使うソーベルフィルタ.
横方向のフィルタはこんな感じ.
縦方向のフィルタはこんな感じ.
これは考えとしては単純で、中央のピクセルに対して、縦or横の差がなければ0.
差があるのであれば何かしら差が出てくることになる.
この差がエッジ検出の閾値となる.
あとはこれを丁寧にフィルタの通りに計算するだけ.
まずは横方向はこんな感じ.
sum = static_cast<ColorF>(image[h - 1][w - 1]).rgb() * -1.0;
sum += static_cast<ColorF>(image[h - 1][w + 1]).rgb() * 1.0;
sum += static_cast<ColorF>(image[h][w - 1]).rgb() * -2.0;
sum += static_cast<ColorF>(image[h][w + 1]).rgb() * 2.0;
sum += static_cast<ColorF>(image[h + 1][w - 1]).rgb() * -1.0;
sum += static_cast<ColorF>(image[h + 1][w + 1]).rgb() * 1.0;
sum = static_cast<ColorF>(image[h - 1][w - 1]).rgb() * 1.0;
sum += static_cast<ColorF>(image[h - 1][w]).rgb() * 2.0;
sum += static_cast<ColorF>(image[h - 1][w + 1]).rgb() * 1.0;
sum += static_cast<ColorF>(image[h + 1][w - 1]).rgb() * -1.0;
sum += static_cast<ColorF>(image[h + 1][w]).rgb() * -2.0;
sum += static_cast<ColorF>(image[h + 1][w + 1]).rgb() * -1.0;