【问题标题】:How do I convert an RGB picture into graysacle using simplecv?如何使用 simplecv 将 RGB 图片转换为灰度?
【发布时间】:2016-12-10 20:25:21
【问题描述】:

所以使用 windows、python 2.7 和 simplecv 我正在使用我的网络摄像头制作实时视频,并希望 simplecv 给我一个灰度版本的视频。有什么简单的方法可以实现吗? 我找到了命令

grayscale()

在 opencv 页面上,它应该做到这一点,但是当我运行它时,我得到了错误:

NameError: name "grayscale" is not defined

我目前正在使用这个预先编写的代码进行对象跟踪,但我不知道我是否应该使用我找到的命令,以及我应该将它放在代码中的哪个位置,有人知道吗? :

print __doc__

import SimpleCV

display = SimpleCV.Display()
cam = SimpleCV.Camera()
normaldisplay = True

while display.isNotDone():

      if display.mouseRight:
          normaldisplay = not(normaldisplay)
          print "Display Mode:", "Normal" if normaldisplay else "Segmented" 

      img = cam.getImage().flipHorizontal()
      dist = img.colorDistance(SimpleCV.Color.BLACK).dilate(2)
      segmented = dist.stretch(200,255)
      blobs = segmented.findBlobs()
      if blobs:
         circles = blobs.filter([b.isCircle(0.2) for b in blobs])
         if circles:
             img.drawCircle((circles[-1].x, circles[-1].y), circles[-1].radius(),SimpleCV.Color.BLUE,3)

if normaldisplay:
    img.show() 
else:
    segmented.show()

【问题讨论】:

  • img = cam.getImage().flipHorizo​​ntal().toGray() ?
  • 这对我有用,谢谢!

标签: python windows python-2.7 opencv simplecv


【解决方案1】:

在简单的 cv 中有一个名为 toGray() 的函数,例如 这可能会也可能不会。所以请不要投票给我,我没有任何代表。 :(

import SimpleCV as sv
img = img.jpg
sv.img.jpg.toGray()
    return gimg.jpg

【讨论】:

    【解决方案2】:

    在 SimpleCV 中有多种方法可以做到这一点。 已经描述了一种方法,它是 toGray() 方法。 还有一种方法可以使用高斯模糊来做到这一点,这也有助于消除图像噪声:

    from SimpleCV import *
    img = Image("simplecv")
    img.applyGaussianFilter(grayscale=True)
    

    在第三行之后,img 对象包含了高频噪声少很多的图像,并转换为灰度。

    您可以查看使用 OpenCV 的 pyimagesearch.com,但他解释了为什么应用高斯模糊是一个好主意。

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 2014-02-26
      • 2014-12-22
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      相关资源
      最近更新 更多