我想在一个非常低分辨率的位图上做仿射变换,我想在保持最大信息量的同时做它。
我的输入数据是1位64乘64像素的手写字符图像,我的输出将是灰度和更高的分辨率。在分析图像的基础上,构造了一系列仿射变换(旋转、缩放、剪切、平移),并将它们相乘成一个仿射变换矩阵。
我的问题是,给定输入图像和计算出的仿射变换矩阵,如何以尽可能高的质量计算输出图像?我读过关于不同插值技术的文章,但它们都是关于如何为缩放而进行插值,而不是一般的仿射变换。
这是一个演示,正在做的正是我正在寻找的。给出了仿射变换矩阵和插值技术,计算了图像。
http://bigwww.epfl.ch/demo/jaffine/index.html
,如果我有一个低分辨率的1位输入和给定的T仿射变换矩阵,你能解释计算高分辨率(例如4x)灰度图像所需的步骤吗?
你能把我链接到一些源代码或教程,或文章,,甚至书籍,关于如何用仿射变换实现线性、三次或更好的插值吗?
我需要在Java中实现这个问题,而且我知道Java有一个仿射类,但是我不知道它是否实现了插值。您知道有什么C++或Java库可以很好地阅读代码来理解如何编写使用插值进行仿射变换的算法吗?
是否有可免费使用的Java或C++库,这些库具有内建的函数,可以使用插值计算仿射变换?
发布于 2011-10-29 13:44:55
好的,这是我最后得到的解决方案。
发布于 2011-10-22 21:56:58
同样的人,你链接到有一个C实现与几个插值选项这里。你也许可以用JNI包起来。还有JavaCV,它封装了OpenCV。OpenCV包含有内插的warpAffine。另外,请查看Java高级成像 API 这里。
https://stackoverflow.com/questions/7862583
复制相似问题