python - OpenCV-Python : img is not a numpy array, 既不是标量

标签 python image opencv

我正在尝试编写保存图像功能。预计以下代码会创建原始图像的副本,如 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

这里需要改什么?

最佳答案

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

首先你需要cv2.imread(..)你的图像到一个numpy数组:

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

如果您只是想复制一个图像文件,则无需将其加载到内存中,您可以简单地复制文件,而无需使用 opencv:

from shutil import copyfile

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

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

关于python - OpenCV-Python : img is not a numpy array, 既不是标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440794/

相关文章:

c++ - 在OpenCV中查找具有已知纵横比的矩形的距离

python - 没有找到记录器 __main__ 的处理程序

python - 如何使用 fuzzywuzzy 的 process.extract 函数按特定属性处理对象列表?

image - CSS 图像在刷新时消失

c# - 如何绘制/覆盖图像文件到位图图像?

image - 以编程方式从谷歌地图图 block 创建 map ?

python - numpy数组遍历的优化

python - 提前 7 天从一列移动数据 - pandas Dataframe

android - Android 5.0 上的 OpenCV native 相机 View 无法正常工作

python - 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv