0

我正在尝试编写一个通过高斯和其他一些过滤器过滤位图的代码。我开发了一个代码,它根据内核大小和标准偏差等输入参数生成内核。我还编写了一个解析位图图像并将其放入指针的代码。我的问题是,如何将生成的内核矩阵应用于指针,或者是否有其他方法可以将高斯内核值应用于该位图指针。

这里的示例是我使用不同过滤器(darkenImage)的代码,以便您可以看到我的代码样式:

    int darkenImage(unsigned char* iData, int iWidth, int iHeight)
{
    int i;
    int j;
    unsigned char* ptr = iData;

    for (i=0; i<iHeight; i++)
    {
        for (j=0; j<iWidth; j++)
        {
            *ptr = *ptr + darkenFactor;
            ptr++;
            *ptr = *ptr + darkenFactor;
            ptr += 1;
            *(ptr++) = *ptr + darkenFactor;
        }
        ptr+=2;
    }
    return 0;
}

这里是主函数的输入、输出部分

printf("Applying dark image\n");
    bitmapData = LoadBitmapFile("ubuntu.bmp",&bitmapFileHeader, &bitmapInfoHeader);
    darkenImage (bitmapData, bitmapInfoHeader.biWidth, bitmapInfoHeader.biHeight);
    err = SaveBitmapFile("out_darken.bmp", &bitmapFileHeader,
    &bitmapInfoHeader, bitmapData);
    if (err)
    {
        printf("Error trying to save bitmap\n");
    }
    free(bitmapData);

那么,如何制作 GaussFilter 函数呢?

4

0 回答 0