opencv 如何使用simplecv将RGB图片转换为灰度?

frebpwbc  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(163)

所以我在用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()
8cdiaqws

8cdiaqws1#

在SimpleCV中有多种方法可以做到这一点。其中一种方法已经介绍过了,那就是toGray()方法。还有一种方法可以用高斯模糊来实现这一点,它也有助于去除图像噪声:

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

第三行之后,img对象包含的图像高频噪声少了很多,并转换为灰度。
您可以查看pyimagesearch.com使用OpenCV的www.example.com,但他解释了为什么应用高斯模糊是一个好主意。

jxct1oxe

jxct1oxe2#

在简单的cv中有一个名为toGray()的函数,例如:

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

相关问题