画像処理入門 > 初級編 > 収縮

収縮


収縮
2値化後、白領域を収縮する(黒領域を膨張する)プログラムです。

サンプルプログラム
void erosion(unsigned char *out, unsigned char *in, int inHeight, int inWidth, int value){ int ix, iy, jx, jy; int outX, outY; memset(out, 255, inWidth * inHeight); for(iy = 0; iy < inHeight; ++iy){ for(ix = 0; ix < inWidth; ++ix){ if(in[iy * inWidth + ix] == 0){ for(jy = -value; jy <= value; ++jy){ outY = iy + jy; // 画像領域外チェック if( outY < 0 || outY >= (inHeight - 1)){ continue; } for(jx = -value; jx <= value; ++jx){ outX = ix + jx; // 画像領域外チェック if( outX < 0 || outX >= (inWidth - 1)){ continue; } out[outY * inWidth + outX] = 0; } } } } } }