OpenCV 图像处理高频接口新增华为昇腾支持
IT之家 12 月 12 日消息,据 OpenCV 中国开发团队消息,为了进一步加速 OpenCV 图像处理,即将推出的 OpenCV 4.9.0 版本提供了图像处理相关的高频使用接口的华为昇腾(Ascend)支持。
除此之外,2023 年 10 月 17 日,OpenCV社区正式接纳昇腾 + openEuler 作为持续集成(Continuous Integration,CI)系统的操作系统之一,这意味着未来 OpenCV 的代码修改均会在昇腾 + openEuler 环境中进行自动化构建及测试,保障了 OpenCV 在 openEuler 上支持的稳定性。
据介绍,本次提供的以昇腾为后端的图像处理接口封装在 OpenCV 扩展包(opencv_contrib)的 cannops 模块中,包括图像矩阵的算术运算、通道拆分合并、图片裁剪、翻转、调整大小、转置等图像处理的 Python 和 C++ 接口,处理精度与 CPU 后端的计算结果相同。
OpenCV 是一个开源的跨平台计算机视觉库,提供了图像处理,机器学习,视频分析等功能,支持多种开发语言,多平台和多类型后端。其中图像处理模块提供了矩阵的算术和逻辑运算,图像处理,视频编解码等,被广泛运用于计算机视觉领域的数据预处理和后处理。
IT之家附调用昇腾后端实现图像处理的示例:
除了对昇腾必要的初始化、去初始化之外,用户无需学习 CANN API,仅需要将原来的接口添加 cann 包名(C++ 接口为使用 cann 命名空间),即可使用昇腾算力。
import cv2# cann初始化cv2.cann.initAcl()# 选择执行运算的设备编号cv2.cann.setDevice(0)# 图像处理(以图像旋转为例)img = cv2.imread('/path/to/image')# 添加cann包名调用昇腾接口ret = cv2.cann.rotate(img, 0)cv2.imwrite('/path/to/result', ret)# cann去初始化cv2.cann.finalizeAcl()
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。