2014-04-11 16 views
6

OpenCV örnekleri arasında çalışıyorum ve bazen örnekler çalışmayacak. Birçok durumda sadece küçük değişiklikler yapmak zorundayım ve o zaman çalışıyor. Bu durumda şimdiye kadar bir çözüm buldum. Aşağıdaki kodu çalıştırırsam, kmler çizgisinde bir hata alıyorum. Veri tiplerini kontrol ettim ve her şey yolunda görünüyor. Kimse neyin yanlış gittiğine dair bir fikir? Teşekkürler! https://github.com/Itseez/opencv denPython openCV: kmeans örneği çalışmıyor

Kod örnek:

''' 
Keyboard shortcuts: 
    ESC - exit 
    space - generate new distribution 
''' 

import numpy as np 
import cv2 
from gaussian_mix import make_gaussians 

if __name__ == '__main__': 
    cluster_n = 5 
    img_size = 512 

    print __doc__ 

    # generating bright palette 
    colors = np.zeros((1, cluster_n, 3), np.uint8) 
    colors[0,:] = 255 
    colors[0,:,0] = np.arange(0, 180, 180.0/cluster_n) 
    colors = cv2.cvtColor(colors, cv2.COLOR_HSV2BGR)[0] 

    while True: 
     print 'sampling distributions...' 
     points, _ = make_gaussians(cluster_n, img_size) 

     term_crit = (cv2.TERM_CRITERIA_EPS, 30, 0.1) 

     ret, labels, centers = cv2.kmeans(points, cluster_n, None, term_crit, 10, 0) 

     img = np.zeros((img_size, img_size, 3), np.uint8) 
     for (x, y), label in zip(np.int32(points), labels.ravel()): 
      c = map(int, colors[label]) 
      cv2.circle(img, (x, y), 1, c, -1) 

     cv2.imshow('gaussian mixture', img) 
     ch = 0xFF & cv2.waitKey(0) 
     if ch == 27: 
      break 
    cv2.destroyAllWindows() 

Hata Mesajı: Ne 2.4.8 üzerinde çalışan yaparken arabayı 3.x OpenCV versiyonundan örnek kullanıyordum

TypeError: an integer is required 

cevap

10

. Sözdizimi 2.x:

ret, labels, centers = cv2.kmeans(points, cluster_n, term_crit, 10, 0) 
içinde farklıdır.