图像变换示例执行脚本位于 ucp_tutorial/vp/vp_samples/script/02_transformation 目录下,该示例主要展示了不同转换类算子的应用效果,包括图片缩放、上下采样、旋转、翻转、转置、仿射、透视,详细的实现方法请结合示例源码对比实践。
此示例中,直接执行示例脚本会执行默认的图片变换示例:生成一张resize和purUp的效果对比图片,若希望更改图片的处理方法,则可以通过在执行示例脚本时追加参数来控制执行的流程,参数的追加规则如下:
其中,transform operate为可选参数,示例算法。
此外还可以通过追加 -help 命令获取所有可用的追加参数列表。
算子执行后会在 vp_samples/script/02_transformation 目录下保存图片处理结果,本示例的生成物内容如下:
不同的追加参数会导致示例调用不同的接口,生成的处理结果也不相同,具体的实现如下:
compare_resize_pyrUp
将输入图片分为了左右两份,并将输入图片的一半分别通过 hbVPPyrUp 和 hbVPResize 接口进行处理,并将处理结果拼接成输出图片。
输出图片的左侧为pyrUp处理效果,右侧为resize处理效果,具体输出如下图:
compare_pyrDown_rotate_flip_transpose
此示例流程中将输入图片分为了四份,其中,左上部分使用 hbVPPyrDown 处理,右上使用 hbVPTranspose 处理,左下使用 hbVPRotate 处理,右下使用 hbVPFlip 处理,最后将处理结果按照部位组合为输出图片,具体输出如下图:
affine
此示例流程中对输入图片进行了仿射变换,将图片逆时针旋转了45°,并将旋转后的图片置于长宽均为输入图片两倍的内存中,具体输出如下图:
perspective
此示例流程中对输入图片进行了透视变换,将图片按照特定的转换矩阵进行变换,若需要对该变化的形式进行变更,请手动更改相关源码中的变换矩阵,具体输出如下图:
