1.系统环境
硬件环境(Ascend/GPU/CPU): GPU
软件环境:
– MindSpore 版本: 1.7.0
执行模式: 静态图(GRAPH) – Python 版本: 3.7.6
– 操作系统平台: linux
2.报错信息
2.1 问题描述
将优化好的图像用cv2进行图片保存,由于没有将tensor转换为numpy,导致cv2.imwrite运行失败。
2.2 脚本信息
import cv2
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
adversarial_tensor, mask_tensor = adversarial.train(attack_method) cv2.imwrite("./cv2对抗图像.jpg",adversarial_tensor)
3.根因分析
看报错信息img is not a numpy array,说明adversarial_tensor不是numpy类型,不能直接保存。
4.解决方案
解决方案说明:把adversarial_tensor类型转换为numpy类型 修改后代码:
import cv2
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
adversarial_tensor, mask_tensor = adversarial.train(attack_method) cv2.imwrite("./cv2对抗图像.jpg", np.transpose(adversarial_tensor.asnumpy(), (1, 2, 0)))
文章来源:https://www.toymoban.com/news/detail-583849.html
正常执行结果adversarial_tensor可以保存为图片。文章来源地址https://www.toymoban.com/news/detail-583849.html
到了这里,关于cv2保存图片类型错误执行报错cv2. error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function ‘imwrite‘ - img i的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!