作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种快速的方法来修复用java或任何语言给出的图片的透视图。目前我真的不知道如何做到这一点,也没有在Google中找到任何有用的东西。
输入:点[4],颜色[][]
输出:透视固定颜色[][]
我所说的透视修复是指 Photoshop 中的透视修复。就像:
如果您告诉我代码片段是如何工作的,我将不胜感激,因为我想理解其中的逻辑。
最佳答案
简单的解决方案是将坐标从原始图像重新映射到最终图像,将像素从一个坐标空间复制到另一个坐标空间,并根据需要进行舍入——这可能会导致某些像素被复制多次,彼此相邻,以及其他被跳过的像素,具体取决于您是否在任一维度上拉伸(stretch)或收缩(或两者)。确保您的复制遍历目标空间,以便所有像素都被覆盖在那里,即使它们被绘制多次,而不是通过源,这可能会跳过输出中的像素。
更好的解决方案包括计算相应的源坐标而不进行舍入,然后使用其像素之间的分数位置来计算该位置周围(通常)四个像素的适当平均值。这本质上是一个过滤操作,因此你会损失一些分辨率——但结果对于人眼来说看起来要好得多;它在保留小细节方面做得更好,并避免产生人们认为令人反感的直线伪影。
请注意,相同的基本方法可用于将平面图像重新映射到任何其他形状,包括 3D 表面映射。
关于java - 如何进行透视固定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864153/
我是一名优秀的程序员,十分优秀!