2016-08-04 19 views
0

因此,使用windows,python 2.7和simplecv我正在用我的攝像頭製作一個實時視頻,並希望simplecv給我一個灰度版本的視頻。有沒有簡單的方法來實現這一點? 我發現命令如何使用simplecv將RGB圖片轉換爲graysacle?

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() 
+0

img = cam.getImage()。flipHorizo​​ntal()。toGray()? – Cabu

+0

這爲我工作,謝謝你! – Jennan

回答

0

在簡單CV那裏有例如 )稱爲toGray(一個函數,這可能或可能不工作。所以我不投票給我我沒有任何代表。 :(

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

感謝您的回答! – Jennan

0

有多種方式在SimpleCV做到這一點。 一種方式已經說明,它的toGray()方法。 還有一個辦法,你可以用高斯模糊,這也有助於做到這一點去除圖像噪聲:

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

第三線後,IMG對象包含少了很多高頻噪聲的圖像,並轉換成灰度

可以簽出pyimagesearch.com誰與工作。 OpenCV,b他解釋了爲什麼應用高斯模糊是一個好主意。