适用于Android App的简单图像锐化算法

时间:2010-02-01 11:31:44

标签: android

我正在寻找一种在我的Android应用程序中使用的简单图像锐化算法。我有一个从视频捕获的灰度图像(主要用于文本),我想锐化它,因为我的手机没有自动对焦,近距离物体模糊文本。我没有图像处理的任何背景。但作为用户,我熟悉Gimp,Photoshop等中可用的非锐化掩模和其他锐化工具。我没有看到Android API中的图像处理支持,因此我正在寻找一种方法来实现自己。谢谢。

3 个答案:

答案 0 :(得分:1)

这是一种简单的图像锐化算法。

您应该将灰度图像的宽度,高度和字节[]数组传递给此函数,它将锐化此byte []数组中的图像。

void sharpen(int width, int height, byte* yuv) {

    char *mas;
    mas = (char *) malloc(width * height);
    memcpy(mas, yuv, width * height);

    signed int res;

    int ywidth;

    for (int y = 1; y < height - 1; y++) {
        ywidth = y * width;
        for (int x = 1; x < width - 1; x++) {
            res = (
                      mas[x + ywidth] * 5
                    - mas[x - 1 + ywidth]
                    - mas[x + 1 + ywidth]
                    - mas[x + (ywidth + width)]
                    - mas[x + (ywidth - width)]

                    );
            if (res > 255) {
                res = 255;
            };
            if (res < 0) {
                res = 0;
            };

            yuv[x + ywidth] = res;

        }
    }
    free(mas);
}

答案 1 :(得分:0)

如果您可以访问像素信息,那么您最基本的选项就是锐化卷积内核。看看以下网站,您可以了解有关锐化内核以及如何在其中应用内核的更多信息。

link1
link2

答案 2 :(得分:-1)

ImageJ在Java中有许多算法,可以免费使用。