501c501 < IplImage *src, *dst; --- > IplImage *src, *tmp, *dst; 505a506 > tmp = cvCreateImage(cvSize(width[0],height[0]), IPL_DEPTH_8U, 3); 513c514,517 < cvSet2D(mask,h, w, cvScalar(kernel[i],0,0,0)); --- > if(modulo > 1) > cvSet2D(mask,h, w, cvScalar(kernel[i]/modulo,0,0,0)); > else > cvSet2D(mask,h, w, cvScalar(kernel[i],0,0,0)); 518c522,527 < cvFilter2D(src, dst, mask, cvPoint(-1,-1)); --- > if (offset != 0) { > cvFilter2D(src, tmp, mask, cvPoint(-1,-1)); > /*Add offset*/ > cvAddS(tmp, cvScalarAll(offset), dst, 0); > } else > cvFilter2D(src, dst, mask, cvPoint(-1,-1)); 523a533 > cvReleaseImage(&tmp);