【问题标题】:Function calcHist in openCV crashing in python on macopenCV中的函数calcHist在mac上的python中崩溃
【发布时间】:2014-11-07 17:35:17
【问题描述】:

这是代码

# USAGE
# python grayscale_histogram.py --image ../images/beach.png

# Import the necessary packages
from matplotlib import pyplot as plt
import argparse
import cv2

# Construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True,
    help = "Path to the image")
args = vars(ap.parse_args())

# Load the image, convert it to grayscale, and show it
image = cv2.imread(args["image"])
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("Original", image)

# Construct a grayscale histogram
hist = cv2.calcHist([image], [0], None, [256], [0, 256])

# Plot the histogram
plt.figure()
plt.title("Grayscale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
plt.plot(hist)
plt.xlim([0, 256])
plt.show()
cv2.waitKey(0)

当我运行它时,出现以下错误:

Snows-MacBook-Pro:code Mac$ python chapter-07/grayscale_histogram.py -i images/wave.png 
OpenCV Error: Assertion failed (step[dims-1] == (size_t)CV_ELEM_SIZE(flags)) in create, file /tmp/opencv-miY1tR/opencv-2.4.9/modules/core/src/matrix.cpp, line 236
Traceback (most recent call last):
  File "chapter-07/grayscale_histogram.py", line 21, in <module>
    hist = cv2.calcHist([image], [0], None, [256], [0, 256])
cv2.error: /tmp/opencv-miY1tR/opencv-2.4.9/modules/core/src/matrix.cpp:236: error: (-215) step[dims-1] == (size_t)CV_ELEM_SIZE(flags) in function create

我已经安装了openCV

brew install opencv

我确实再次重新安装了 openCV,但仍然存在同样的问题。

我怀疑openCV的编译存在一些问题。
也许是因为不同的编译器clang,gcc。

任何建议表示赞赏。

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    在 openCV 中使用另一个函数时,我遇到了同样的错误。使用您帖子中的代码,我也遇到了错误。 openCV 3.0.0 也不起作用,它给了我另一种错误。

    最终奏效的是通过 Anaconda 安装 openCV。它仍然使用 openCV 2.4.8,所以也许这就是解决方案。

    首先我在 brew 中取消链接 openCV:“brew unlink opencv”

    然后安装Anaconda包:http://continuum.io/downloads#all

    然后安装openCV:“conda install opencv”

    最后更新numpy:“conda update numpy”

    【讨论】:

    • 我稍后会尝试。您的 OSX 是全新安装还是从以前的版本升级?我是从 10.6 升级到 10.7 10 10.8 和现在的 10.9。我有一种预感,如果我进行 10.9 的全新安装,问题就会消失。这就是我问的原因。
    • 我还需要做pip uninstall numpy 看起来问题出在 numpy 而不是 openCV 中。我的颠簸版本是numpy==1.10.0.dev-cfa095a
    • 我还把我的 OSX 从 10.6 升级到了 10.9,自从我得到它之后还没有进行干净的安装。我不记得我正在运行的 numpy 版本。我想我使用的是通过 pip 安装的 numpy 1.9.1。你现在是否让它与 openCV 2.4.9 或 3.0.0 一起工作?
    • 我什么都像你一样,所以是openCV 2.4.9。
    【解决方案2】:

    我还需要做一个pip uninstall numpy,但还必须删除/usr/local/bin/usr/local/Cellar 中的numpy 目录(特别是f2py 目录)。 之后我做了一个pip install numpy,它工作正常。

    【讨论】:

      猜你喜欢
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2021-07-16
      • 1970-01-01
      • 2017-08-21
      • 2012-11-27
      • 2020-09-26
      相关资源
      最近更新 更多