AttributeError:module' cv2'没有属性' imread'

时间:2017-12-17 16:29:19

标签: python opencv

(我在mac os 10.8.5上)

我使用Python 3(通过jupyter笔记本)并尝试import cv2

我成功import cv2,但当我输入im_g = cv2.imread("smallgray.png", 0)时,我收到此错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-5eb2880672d2> in <module>()
----> 1 im_g = cv2.imread("smallgray.png", 0)

AttributeError: module 'cv2' has no attribute 'imread'

我还检查了dir(cv2),我得到了:

['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__'

我想很多功能都丢失了...... 是因为opencv安装错误吗? 实际上我为了获得opencv而苦苦挣扎,我想我安装了很多次&#39;以及通过终端的不同方式。 (brewpip

我应该卸载opencv并重新开始吗?我该怎么做呢?

提前谢谢

11 个答案:

答案 0 :(得分:3)

可能是您以错误的方式安装了它。就我而言,我也错误地安装了OpenCV,因此我将其完全卸载,然后重新安装,这导致它正常工作。

请注意卸载和安装的顺序:

卸载:

import pandas as pd
from numpy.core.multiarray import dtype
import json

def get_schema():
    return {
            'start_time': dtype('str'),
            'col1': dtype('int64'),
            'col2': dtype('str'),
            'col3': dtype('str'),
            }

def build_df():
    sample_df = {
        'start_time': '2019-04-05 14:57:14',
        'col1': 30750,
        'col2': 'toy',
        'col3': '4',
    }
    return sample_df

def build_df_from_schema(in_dt, schema):
    input_json = json.dumps(in_dt)
    df = pd.read_json(input_json, typ='series', dtype=schema)
    return df

build_df_from_schema(build_df(), get_schema())

安装:

pip uninstall opencv-python
pip uninstall opencv-contrib-python

答案 1 :(得分:2)

读者的问题可能是安装了错误的库(cv2软件包)。 例如,我安装了opencv-python3而不是opencv-python

因此,如果您具有PyCharm IDE,请转至File-> Settings-> Project:*-> Python Interpreter并查看您在此处列出的内容:

enter image description here

确保已安装opencv-python。 如果您也有其他类似的名称,那应该没问题-就我而言,它可以工作。

答案 2 :(得分:1)

执行cv2.cv2.imread()

这在大多数情况下都适用。另外,看看here

答案 3 :(得分:0)

检查:

brew list | grep opencv

如果未安装,请尝试:

brew install opencv

答案 4 :(得分:0)

它与我合作:

pip安装opencv-python

pip安装opencv-contrib-python

源:https://pypi.org/project/opencv-python/

答案 5 :(得分:0)

我也有这个问题,我解决了,问题出在我的脚本名为cv2.py,我只是将其重命名为其他名称。

答案 6 :(得分:0)

如果您将一个文件命名为“ cv2.py”,则可能会发生这种情况。因此,当您“导入cv2”时,系统将访问您的文件而不是实际的库。因此,尝试将cv2.py'重命名为任何其他名称,您的代码应该可以正常工作。

答案 7 :(得分:0)

我遇到了同样的问题,原来可以解决这个问题:

from cv2 import cv2
im_g=cv2.imread("smallgray.png", 0)
print(im_g)

答案 8 :(得分:0)

我在Ubuntu上遇到了类似的问题
我已经使用comand安装了open-cv:

sudo pip3 install opencv-python3

我卸载了opencv,作者:

sudo pip3 uninstall opencv-python3

然后使用以下代码重新安装它:

pip3 install opencv-python

答案 9 :(得分:0)

我也遇到了这个问题。
通过将当前 cv2.py 更改为 cv.py 来获得解决方案(您可以可以随意命名,但使用的软件包名称除外。
小解释

将当前工作文件保存为 cv2.py ,当我们尝试运行该文件时,它会使用 import cv2 语句导入当前文件,不是实际的 cv2 模块。这整个问题导致了整个错误。

答案 10 :(得分:-1)

也许您刚刚安装了opencv-contrib-python而不是opencv-python

尝试一下,它对我有用-

  1. 首次卸载:
pip uninstall opencv-python
pip uninstall opencv-contrib-python
  1. 然后安装:
pip install opencv-contrib-python==3.4.2.16
pip install opencv-python==3.4.2.16

您可以参考here