Python 3.x 如何在不使用任何OpenCv库的情况下使用最近邻和双线性插值旋转图像?
我想知道任何基于数学的算法,在不使用OpenCV库和imrotate的情况下,使用最近邻和双线性插值旋转图像Python 3.x 如何在不使用任何OpenCv库的情况下使用最近邻和双线性插值旋转图像?,python-3.x,image-processing,Python 3.x,Image Processing,我想知道任何基于数学的算法,在不使用OpenCV库和imrotate的情况下,使用最近邻和双线性插值旋转图像 旋转后,图像不会被裁剪,必须显示完整图像。旋转对应于坐标的仿射变换,并且很容易使用矩阵/向量进行描述。在网上找到公式没什么大不了的 现在需要知道的重要一点是,与其将原始图像的像素映射到变换后的图像,不如反向工作 扫描变换图像的每个像素,通过应用逆变换,在原始图像中找到相应的坐标。你需要用真实坐标来做这件事 然后 对于最近邻法,将坐标四舍五入,只需将源像素值复制到目标 对于双线性方法,考
旋转后,图像不会被裁剪,必须显示完整图像。旋转对应于坐标的仿射变换,并且很容易使用矩阵/向量进行描述。在网上找到公式没什么大不了的 现在需要知道的重要一点是,与其将原始图像的像素映射到变换后的图像,不如反向工作 扫描变换图像的每个像素,通过应用逆变换,在原始图像中找到相应的坐标。你需要用真实坐标来做这件事 然后
- 对于最近邻法,将坐标四舍五入,只需将源像素值复制到目标 对于双线性方法,考虑得到的坐标周围的四个像素(将执行截断为整数)。最后,将目标像素计算为四个源像素的双线性组合,使用坐标的分数部分作为权重来执行插值
查看此处的图:Python中有大量可用的实现,但此处列出的实现超出了堆栈溢出的范围,请参阅。如果你想有自己的实现,开始阅读插值和旋转,进行诚实的尝试,然后在这里问一个具体的问题,如果你卡住了。正如Yves所说,你必须反向工作的原因是你会得到“洞”如果从没有输入像素映射到输出像素的现有图像向前工作,则在结果图像中。我们这些编程的人只是太痛苦地意识到@MarkSetchell:“太痛苦地意识到”:已确认:)