如何使用 simplecv 将 RGB 图片转换为 graysacle?
How do I convert an RGB picture into graysacle using simplecv?
所以使用 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()
例如,在简单的 cv 中有一个名为 toGray() 的函数
这可能有效也可能无效。所以请不要投票给我,我没有任何代表。 :(
import SimpleCV as sv
img = img.jpg
sv.img.jpg.toGray()
return gimg.jpg
在 SimpleCV 中有多种方法可以做到这一点。
已经描述了一种方法,它是 toGray() 方法。
还有一种方法可以使用高斯模糊来做到这一点,这也有助于消除图像噪声:
from SimpleCV import *
img = Image("simplecv")
img.applyGaussianFilter(grayscale=True)
第三行之后,img对象包含高频噪声少很多的图像,并转换为灰度。
您可以查看使用 OpenCV 的 pyimagesearch.com,但他解释了为什么应用高斯模糊是个好主意。
所以使用 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()
例如,在简单的 cv 中有一个名为 toGray() 的函数 这可能有效也可能无效。所以请不要投票给我,我没有任何代表。 :(
import SimpleCV as sv
img = img.jpg
sv.img.jpg.toGray()
return gimg.jpg
在 SimpleCV 中有多种方法可以做到这一点。 已经描述了一种方法,它是 toGray() 方法。 还有一种方法可以使用高斯模糊来做到这一点,这也有助于消除图像噪声:
from SimpleCV import *
img = Image("simplecv")
img.applyGaussianFilter(grayscale=True)
第三行之后,img对象包含高频噪声少很多的图像,并转换为灰度。
您可以查看使用 OpenCV 的 pyimagesearch.com,但他解释了为什么应用高斯模糊是个好主意。