【问题标题】:other IDE does not work with openCV except IDLE除 IDLE 外,其他 IDE 不适用于 openCV
【发布时间】:2020-03-05 17:38:43
【问题描述】:

我已经验证了我的 Python 和 openCV 库确实可以工作。让我们说一个简单的 cv2.imshow() 在与 IDLE 一起使用时可以正常工作。但是当我尝试使用其他 IDE(如 Visual Studio 和 Pyscripter)使用相同的代码时,IDE 无法显示图像并出现错误。但是当我尝试打印(cv2.version)时,它工作正常。这意味着我的 IDE 能够很好地使用 openCV 库。我的 pyscripter 也提供与 VS 相同的输出。我已经禁用了任何防病毒软件。为什么只有 IDLE 有效?

import cv2

print(cv2.__version__)

img = cv2.imread('cat.jpg')

cv2.imshow('img', img)`

IDLE vs VS running same code

python(64 位):3.7.5 开放式简历(点子):4.1.1 视觉工作室:2019 16.3.8

更新: 我发现了这个错误:

cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

所以我在我的 VS 中添加了 c++ 模块,并将这一行添加到代码中:

cv2.waitKey(0)
cv2.destroyAllWindows()

它可以工作,但与 IDLE 相比有点滞后,谁能解释一下为什么?

【问题讨论】:

  • 您能否为您的问题添加更多信息。你能告诉我们你在其他 IDE 和 IDLE 中运行什么代码以及你遇到了什么错误。
  • code:import cv2 print(cv2.__version__) img = cv2.imread('cat.jpg') cv2.imshow('img', img)comparison IDLE vs VSusing anacondausing pythonhow I setup my system我没有用vscode,因为cv2和pylint有冲突,所以我用vs

标签: python visual-studio opencv


【解决方案1】:

您在其他 IDE 上遇到了什么样的错误?如果您执行print(img),您是否会在其他IDE 上获得None

另外,如果您提供pip list,我可以查看是否可以使用您当前安装的软件包重现您的错误。

您是否尝试过为 python 使用虚拟环境(virtualenvAnacondaMiniconda)?这是使用不同版本的 python 和你的包而不与系统 python 冲突的好方法。

我在 Anaconda conda create -n test python=3.7 opencv jupyter 上设置了一个包含软件包的新环境,并在 opencv 中运行了您提到的命令。它在我安装的以下 IDE 中工作:

  • Visual Studio 2019
  • Visual Studio 代码
  • JetBrains PyCharm
  • GNU emacs
  • Jupyter Notebooks (IPython)(不是真正的 IDE)

对于每个 IDE,您必须将它们指向使用您的虚拟环境设置的 python 解释器(我可以提供更详细的说明)。我怀疑可能发生的情况是 python 的设置与您的其他 IDE 不同。 import sys; print(sys.path) 可能会告诉您是否是这种情况。或者后端可能不同 - 关键是变量太多,最好创建一个虚拟环境来查看是否会遇到相同的错误。

编辑:我制作了一个可用于测试的 Jupyter Notebook。如果你想看到它运行,你可以点击右上角的 Binder (or start in Colab)。关键是,如果你下载了这个笔记本并在你的 Python 环境中运行它应该可以工作(我在笔记本中包含了 conda 设置说明)。 NBViewer, GitHub Repository

【讨论】:

  • 我安装一切都差不多,除了使用VS how to install opencv python windows my pip list using anaconda using python @csoham
  • 我发现了这个错误:cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'。很奇怪,因为我在使用 python
  • 我认为它没有找到您的图片(宽度和高度均为 0),请尝试输入图片的完整路径并再次运行它。您是在运行脚本还是使用集成终端?似乎您有不同的 opencv 来源(检查您的路径)。您能否在 Anaconda Prompt 中运行所有内容(确保在输入 python 之前激活您的环境)并查看是否出现相同的错误?在 Visual Studio 中,您是否将 Python 解释器指向 conda 中的解释器?
  • 您好,我确实尝试了您的建议,但输出仍然相同。但我发现了这个1。我想我的问题是一样的。但是我仍然没有从线程中找到任何解决方案。
  • 我添加了 cv2.waitKey(0),它适用于 VS,但在 IDLE 中我不需要这些行,为什么?
猜你喜欢
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2012-02-14
相关资源
最近更新 更多