图像中值滤波算法,加速版

原理在于维护一个核的直方图数据,核的走向采用折线型,暂时没有对边界处理。

w:图像宽度

h:图像高度

n:中值滤波的核大小(n X n)

margin:设定边界的值,margin要大于n/2,否则程序会出错,这是由于没有对边界处理。

#define LEFT_MOVE 2
void medianFilterFast(unsigned char * data, int w, int h, int n, unsigned char* result, int margin)
{
   //qq:945806570
}

测试下性能,medianBlur是opencv中的函数。

    int cnt = 100;
    while (cnt--)
    {
        //medianFilter(image.data, image.size().width, image.size().height, 19, result.data, 20);
        medianFilterFast(image.data, image.size().width, image.size().height, 19, resultFast.data, 10);
        medianBlur(image, resultblur, 19);
        Sleep(1);
    }

结果:

猜你喜欢

转载自www.cnblogs.com/shushanxiaoyao/p/9260585.html