我正在处理一些图像处理任务。
我使用getDrawingCache()
和createScalledBitmap()
创建了低分辨率位图。
但是当我将这个图像调整为高分辨率,比如612 X 612时,我的图像变得模糊了。看起来很糟糕。
是否有任何方法可以调整图像的高分辨率而不失去像素?OpenCV有这种类吗?
我正在处理一些图像处理任务。
我使用getDrawingCache()
和createScalledBitmap()
创建了低分辨率位图。
但是当我将这个图像调整为高分辨率,比如612 X 612时,我的图像变得模糊了。看起来很糟糕。
是否有任何方法可以调整图像的高分辨率而不失去像素?OpenCV有这种类吗?
有一些算法和技术可用于插值(猜测)插入的像素应该看起来像什么,以避免锯齿状边缘等问题。维基百科提供了一些关于各种基于插值的缩放技术和超采样的信息作为起点。请注意,这些技术都不会创建新的信息,它们只是平滑边缘并使缩放后的图像看起来不那么锯齿状。
我已经使用资产解决了这个问题。
(1) 将所有图像放入资产文件夹中
(2) 使用输入流读取图像
现在我不需要调整大小,它可以按照我想要的方式正常工作。就像这样:
private void setThemeBackgroundImage(String imageName, Button themeButton) {
try {
InputStream backgroundBitmap = getAssets().open(imageName);
Bitmap immutableBitmap = BitmapFactory
.decodeStream(backgroundBitmap);
themeButton.setBackgroundDrawable(new BitmapDrawable(
getResources(), immutableBitmap));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}