Пример #1
0
    def __init__(self, processNoiseCovariance=1e-2, measurementNoiseCovariance=1e-1, errorCovariancePost=0.1):
        '''
        Constructs a new Kalman2D object.  
        For explanation of the error covariances see
        http://en.wikipedia.org/wiki/Kalman_filter
        '''

        self.kalman = cv.CreateKalman(4, 2, 0)
        self.kalman_state = cv.CreateMat(4, 1, cv.CV_32FC1)
        self.kalman_process_noise = cv.CreateMat(4, 1, cv.CV_32FC1)
        self.kalman_measurement = cv.CreateMat(2, 1, cv.CV_32FC1)

        for j in range(4):
            for k in range(4):
                self.kalman.transition_matrix[j,k] = 0
            self.kalman.transition_matrix[j,j] = 1

        cv.SetIdentity(self.kalman.measurement_matrix)

        cv.SetIdentity(self.kalman.process_noise_cov, cv.RealScalar(processNoiseCovariance))
        cv.SetIdentity(self.kalman.measurement_noise_cov, cv.RealScalar(measurementNoiseCovariance))
        cv.SetIdentity(self.kalman.error_cov_post, cv.RealScalar(errorCovariancePost))

        self.predicted = None
        self.esitmated = None
Пример #2
0
 def save(self, filename, cropFlag = False):
     """save cropped and rotated image"""
     if not cropFlag:
         cv.SaveImage(filename +'-vectors.png',self.render())
     else:
         tmp = rotate(self.cImage, self.center, self.cardinalOffset +\
                 self.north)
         #mask horizon
         mask = cv.CreateImage(self.res, 8, 1)
         cv.Zero(mask)
         cv.Circle(mask, self.center, self.radius, (255,255,255))
         cv.FloodFill(mask,(1,1),(0,0,0))
         cv.FloodFill(mask, self.center,
                 (255,255,255),lo_diff=cv.RealScalar(5))
         masked = cv.CloneImage(tmp)
         cv.Zero(masked)
         cv.Copy(tmp, masked, mask)
         cv.SaveImage(filename +'-cropped.png',crop(masked, self))
     #CSV output
     array = magnitudeToTheta(self.polarArray,self.radius)
     f = open(filename + '.csv', 'w')
     f.write('00\n')
     f.write(','.join([str(v[0]) for v in array]))
     f.write('\n')
     f.write(','.join([str(v[1]) for v in array]))
     f.write('\n')
     f.flush()
     f.close()
Пример #3
0
def getData():

  for i in range (0 , classes):
    for j in range (0, train_samples):
      if j < 10 :
        fichero = "OCR/"+str(i) + "/"+str(i)+"0"+str(j)+".pbm"
      else:
        fichero = "OCR/"+str(i) + "/"+str(i)+str(j)+".pbm"
      src_image = cv.LoadImage(fichero,0)
      prs_image = preprocessing(src_image, size, size)
  
         
      
      row = cv.GetRow(trainClasses, i*train_samples + j)
      cv.Set(row, cv.RealScalar(i))
      row = cv.GetRow(trainData,   i*train_samples + j)

      img = cv.CreateImage( ( size, size ), cv.IPL_DEPTH_32F, 1) 
      

      cv.ConvertScale(prs_image,img,0.0039215, 0)


      data = cv.GetSubRect(img,  (0,0, size,size))
      row1 = cv.Reshape( data, 0, 1 )
     
      cv.Copy(row1, row)
Пример #4
0
 def __init__(self,
              initial_val=[0],
              p_noise=[1e-2],
              m_noise=[1e-3],
              m_mat=[1],
              ecv=[1]):
     self.kalman = cv.CreateKalman(len(initial_val), len(initial_val), 0)
     self.measurement = cv.CreateMat(len(initial_val), 1, cv.CV_32FC1)
     self.prediction = None
     cv.Zero(self.measurement)
     cv.SetIdentity(self.kalman.measurement_matrix, cv.RealScalar(*m_mat))
     cv.SetIdentity(self.kalman.process_noise_cov, cv.RealScalar(*p_noise))
     cv.SetIdentity(self.kalman.measurement_noise_cov,
                    cv.RealScalar(*m_noise))
     cv.SetIdentity(self.kalman.error_cov_post, cv.RealScalar(*ecv))
     for v in initial_val:
         self.kalman.state_post[initial_val.index(v), 0] = v
         self.kalman.state_pre[initial_val.index(v), 0] = v
def on_mouse( event, x, y, flags, param ):

    if( not color_img ):
        return;

    if event == cv.CV_EVENT_LBUTTONDOWN:
            my_mask = None
            seed = (x,y);
            if ffill_case==0:
                lo = up = 0
                flags = connectivity + (new_mask_val << 8)
            else:
                lo = lo_diff;
                up = up_diff;
                flags = connectivity + (new_mask_val << 8) + cv.CV_FLOODFILL_FIXED_RANGE
            b = random.randint(0,255)
            g = random.randint(0,255)
            r = random.randint(0,255)

            if( is_mask ):
                my_mask = mask
                cv.Threshold( mask, mask, 1, 128, cv.CV_THRESH_BINARY );
               
            if( is_color ):
            
                color = cv.CV_RGB( r, g, b );
                comp = cv.FloodFill( color_img, seed, color, cv.CV_RGB( lo, lo, lo ),
                             cv.CV_RGB( up, up, up ), flags, my_mask );
                cv.ShowImage( "image", color_img );
            
            else:
            
                brightness = cv.RealScalar((r*2 + g*7 + b + 5)/10);
                comp = cv.FloodFill( gray_img, seed, brightness, cv.RealScalar(lo),
                             cv.RealScalar(up), flags, my_mask );
                cv.ShowImage( "image", gray_img );
            

            print "%g pixels were repainted" % comp[0]

            if( is_mask ):
                cv.ShowImage( "mask", mask );
Пример #6
0
def findY(imgSrc):
  mini = 0
  maxi = 0
  minFound = 0
  maxVal=cv.RealScalar(imgSrc.width * 255)
  for i in range(0,imgSrc.height):
    data = cv.GetRow(imgSrc, i);
    val  = cv.Sum(data);
    if(val[0] < maxVal[0]):
      maxi = i
      if(not minFound):
        mini = i
	minFound= 1
  return mini,maxi
Пример #7
0
    leftFingerDown = False
    rightFingerDown = False
    finger0initX = None

    #jumlah jari yang akan dipakai
    totalJari = 3

    #karena resolusi kamera dan layar tidak sama diperlukan perbandingan
    xScale = 2  #4.26
    yScale = 2  #3.2

    counter = 0
    # definition of some colors
    _red = (0, 0, 255, 0)
    _green = (0, 255, 0, 0)
    _white = cv.RealScalar(255)
    _black = cv.RealScalar(0)

    t0 = time.time()

    while True:
        currentFrame = cv.QueryFrame(capture)
        currentFrameSize = (currentFrame.width, currentFrame.height)
        cvImage = cv.CreateImageHeader(currentFrameSize, cv.IPL_DEPTH_8U, 3)
        cv.SetData(cvImage, currentFrame.tostring())
        cv.ShowImage("camera", cvImage)
        if cv.WaitKey(10) == 13:
            break
    cv.DestroyWindow("camera")

    while True:
Пример #8
0
if __name__ == "__main__":
    A = [[1, 1], [0, 1]]

    img = cv.CreateImage((500, 500), 8, 3)
    kalman = cv.CreateKalman(2, 1, 0)
    state = cv.CreateMat(2, 1, cv.CV_32FC1)  # (phi, delta_phi)
    process_noise = cv.CreateMat(2, 1, cv.CV_32FC1)
    measurement = cv.CreateMat(1, 1, cv.CV_32FC1)
    rng = cv.RNG(-1)
    code = -1L

    cv.Zero(measurement)
    cv.NamedWindow("Kalman", 1)

    while True:
        cv.RandArr(rng, state, cv.CV_RAND_NORMAL, cv.RealScalar(0),
                   cv.RealScalar(0.1))

        kalman.transition_matrix[0, 0] = 1
        kalman.transition_matrix[0, 1] = 1
        kalman.transition_matrix[1, 0] = 0
        kalman.transition_matrix[1, 1] = 1

        cv.SetIdentity(kalman.measurement_matrix, cv.RealScalar(1))
        cv.SetIdentity(kalman.process_noise_cov, cv.RealScalar(1e-5))
        cv.SetIdentity(kalman.measurement_noise_cov, cv.RealScalar(1e-1))
        cv.SetIdentity(kalman.error_cov_post, cv.RealScalar(1))
        cv.RandArr(rng, kalman.state_post, cv.CV_RAND_NORMAL, cv.RealScalar(0),
                   cv.RealScalar(0.1))

        while True:
Пример #9
0
 def __init__(self, cov, dynam_params, measure_params, control_params=0):
     self.kf = cv.CreateKalman(dynam_params, measure_params, control_params)
     cv.SetIdentity(self.kf.measurement_matrix, cv.RealScalar(1))
     self.set_cov(cv.fromarray(cov))