【问题标题】:Using Python OpenCV Moments Function With An Image使用带有图像的 Python OpenCV 矩函数
【发布时间】:2012-02-12 05:52:20
【问题描述】:

我正在尝试在灰度图像上使用 Python opencv 函数Moments(),但收到以下TypeError

>>> img = cv.LoadImage('example_image.jpg', cv.CV_LOAD_IMAGE_GRAYSCALE)
>>> moments = cv.Moments(img)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Argument '' must be CvSeq, CvArr, or a sequence of numbers
>>> 

我相信这种用法是正确的,因为它在 opencv 文档here 中得到了证明,其中GetHuMoments() 使用来自Moments() 的结果。

我相信我已经正确安装了 opencvnumpy,因为我已经成功地将它们用于许多其他事情,并且我在 OS X 10.6 和 Red 上都遇到过这种情况帽子 6。

同样的问题是posed in the opencv user group,但我不想按照回复的指示先将图像转换为轮廓。

【问题讨论】:

    标签: python opencv computer-vision


    【解决方案1】:

    看来您需要强制从 IplImage 转换为 cvMat

    之前有个问题“Capture Image as Array with Python OpenCV”

    Capture Image as Array with Python OpenCV

    例如对我来说

    >>> mm=cv.Moments(img)
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    TypeError: Argument '' must be CvSeq, CvArr, or a sequence of numbers
    >>> mat=cv.GetMat(img)
    >>> mm=cv.Moments(mat)
    >>> mm.m00
    181428.0
    

    【讨论】:

      【解决方案2】:

      您使用的是哪个 python 和 opencv 版本?我在 python 2.6.6 和 opencv 2.1.0 上得到了工作结果

      ~/Desktop$ ./opencv-test.py 
      
      > `enter code here`/home/tyndyll/Desktop/opencv-test.py(8)<module>()
      -> img = cv.LoadImage( 'iron-maiden-live-after-death-iron-maiden_1920x1200_79442.jpg', cv.CV_LOAD_IMAGE_GRAYSCALE )
      (Pdb) n
      > /home/tyndyll/Desktop/opencv-test.py(9)<module>()
      -> moments = cv.Moments( img )
      (Pdb) p img
      <iplimage(nChannels=1 width=1920 height=1200 widthStep=1920 )>
      (Pdb) n
      > /home/tyndyll/Desktop/opencv-test.py(10)<module>()
      -> print "Done"
      (Pdb) p moments
      <cv.cvmoments object at 0x7f31fb5437b0>
      (Pdb) c
      Done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-05
        • 2018-11-14
        • 2013-01-19
        • 2018-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多