OpenCV Python:img不是numpy数组,也不是

2024-06-28 22:16:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个保存图像函数。下面的代码将创建原始图像的saved-test-image.jpg副本。

originalImage = "test-image.jpg"
savedImage = cv2.imwrite("saved-test-image.jpg",originalImage)

行的执行给出了以下结果:

Traceback (most recent call last):
  File "UnitTest.py", line 159, in test_save_and_delete_image
    savedImage = cv2.imwrite('unittest-images/saved-test-image.jpg', originalImage)
TypeError: img is not a numpy array, neither a scalar

这里需要改变什么?


Tags: 函数代码test图像imagemost副本cv2
1条回答
网友
1楼 · 发布于 2024-06-28 22:16:37

好吧,opencv是对的,您保存了originalImage,但是originalImage是一个字符串(文件名,您的第一行)。

您需要首先将图像放入numpy数组中:

originalImage = cv2.imread("test-image.jpg")
savedImage = cv2.imwrite("saved-test-image.jpg",originalImage)

但是,如果您只想复制图像文件,则无需将其加载到内存中,只需复制文件,而无需使用opencv:

from shutil import copyfile

originalImage = "test-image.jpg"
copyfile(originalImage,"saved-test-image.jpg")

在这种情况下,它将简单地复制文件-无论其内容是什么-所以即使它是一个损坏的图像,或根本不是一个图像,它也将被复制。

相关问题 更多 >