2010-02-01 53 views
1

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

回答

0

如果你有权访问像素信息,你最基本的选择将是一个锐化卷积核心。看看下面的网站,您可以了解更多关于锐化内核以及如何在那里应用内核的信息。

link1
link2

+1

链接已损坏,您可以更新和/或添加信息到您的答案? – pjco 2015-05-27 16:25:27

-1

ImageJ在Java中有许多算法,并免费提供。

1

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

您应该将灰度图像的width,height和byte []数组传递给此函数,并且它将锐化此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

请在此代码中添加一些内容,说明它如何回答问题 – 2014-07-18 09:44:55

+1

这是一个简单的图像锐化算法。你应该传递给你的灰度图像的函数宽度,高度和byte []数组。并且会在这个byte []数组中形成锐化图像。 – ego 2014-08-20 08:29:51

+1

当然这是[JNI函数。](http://developer.android.com/training/articles/perf-jni.html) – ego 2014-08-20 08:35:33

相关问题