# 2次の微分フィルタ RIGHT:寄稿:東條遼平 * 2次の微分フィルタ [#h7fda414] LaplacianフィルタはPrewittやSobelフィルタと同じく微分フィルタですが、これは2次の微分フィルタとなっています。 #ref(img8.png) Laplacianフィルタは上のようになります。また、これは次の式に相当します。 #ref(img9.png) 1次微分とどちらがいいかという訳ではありませんが、 2次微分の方が細かくエッジを抽出してくれるようです。 for(i=1; i<img->height-1; i++){ for(j=1; j<img->width-1; j++){ sumr = sumg = sumb = 0; for(k=-1; k<=1; k++){ for(l=-1; l<=1; l++){ if(!k && !l) weight = -4; else if(!k || !l) weight = 1; else weight = 0; sumr += weight * img->data[(i+k)*img->width + j + l].r; sumg += weight * img->data[(i+k)*img->width + j + l].g; sumb += weight * img->data[(i+k)*img->width + j + l].b; } } temp->data[i*temp->width + j].r = abs((double)sumr); temp->data[i*temp->width + j].g = abs((double)sumg); temp->data[i*temp->width + j].b = abs((double)sumb); } } 係数が違うだけでアルゴリズム自体はPrewittやSobelフィルタと同じです。 - &ref(main.c); - &ref(bitmap.c); - &ref(bitmap.h);