如何优化图像的翻转、反转和旋转?

Har*_*sad 2 algorithm optimization image-processing

我有不同的方法来执行翻转、反转和旋转(90 度)操作。因为我需要按顺序对多个图像应用这些操作,所以我想优化它......例如。如果我旋转 90 度两次并且我反转一次​​图像它等于执行翻转操作..但我找不到它在特定的组合中..如果我翻转旋转反向旋转翻转旋转反向旋转和继续给我一个不确定的结果..

现在我正在通过取消 2 次翻转 2 次反转和 4 次旋转的操作进行优化,但是当以上述随机顺序操作时,我无法跟踪它...

是否有任何算法适用于此或任何翻转旋转和反向组合序列,使用它我可以优化图像序列的操作

提前致谢

注意:翻转为垂直,反向为镜像,顺时针旋转 90 度

Yve*_*ust 5

如果我是对的,除了恒等(90、180、270 次旋转和 0、90、180、270 次旋转,然后是镜像)之外,只有 7 种可能的不同操作。为了提高效率,最好对它们进行显式编码,而不是使用会使时间增加一倍或三倍的组合。

如果你真的想实现几个功能并将它们组合起来,2个基元是必要和足够的:例如旋转 90 (R) 和镜像 (|)。

   0 => abcd => 
  90 => dabc => R
 180 => cdab => R R
 270 => bcda => R R R

  0| => badc => |
 90| => adcb => R |
180| => dcba => R R |
270| => cbad => | R
Run Code Online (Sandbox Code Playgroud)

角从左上角顺时针列出。正如你所说,翻转是 180|。

通过支持额外的原始操作 +(中心对称或旋转 180 度),您始终最多执行 2 个操作:

   0 => 
  90 => R
 180 => +
 270 => + R

  0| => |
 90| => R |
180| => + |
270| => | R
Run Code Online (Sandbox Code Playgroud)

使用旋转、翻转和镜像,您无法避免三重组合。