2010-02-01 48 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

相關問題