我正在寻找一个简单的图像锐化算法在我的Android应用程序中使用。我有一张从视频中捕获的灰度图像(主要用于文本),我想对其进行锐化,因为我的手机没有自动对焦功能,而且近距离的物体距离会模糊文本。我没有任何图像处理的背景。但作为一名用户,我熟悉Gimp、Photoshop等提供的unsharp蒙版和其他锐化工具。我在Android API中没有看到任何对图像处理的支持,因此我正在寻找一种方法来实现我自己。谢谢。
发布于 2010-02-01 19:54:34
如果你可以访问像素信息,你最基本的选择将是一个锐化的卷积内核。看看下面的站点,你可以了解更多关于锐化内核以及如何在那里应用内核的知识。
link1
link2
发布于 2014-07-18 17:25:15
这是一个简单的图像锐化算法。
您应该将灰度图像的宽度、高度和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);
}发布于 2010-02-01 19:52:38
ImageJ在Java语言中有许多算法,并且可以免费获得。
https://stackoverflow.com/questions/2176315
复制相似问题