Example #1
0
 def __init__(self,size,use_previous=0,blocksize=(8,8),shiftsize=(8,8),maxrange=(8,8),bfc=0):
     self.use_previous=use_previous
     self.blocksize=zcv.cvSize(blocksize[0],blocksize[1])
     self.shiftsize=zcv.cvSize(shiftsize[0],shiftsize[1])
     self.maxrange=zcv.cvSize(maxrange[0],maxrange[1])
     self.imgprev=None
     self.imgvelx=numpy.ndarray(shape=((size[0]-bfc*blocksize[1])//shiftsize[1],(size[1]-bfc*blocksize[0])//shiftsize[0]),dtype=numpy.float32)
     self.cvimgvelx=zcv.NumPy2CvMatFast(self.imgvelx)
     self.imgvely=numpy.ndarray(shape=((size[0]-bfc*blocksize[1])//shiftsize[1],(size[1]-bfc*blocksize[0])//shiftsize[0]),dtype=numpy.float32)
     self.cvimgvely=zcv.NumPy2CvMatFast(self.imgvely)
Example #2
0
def PIL2zIpl(input):
        """Converts a PIL image to the OpenCV/IPL CvMat data format.

        Supported input image formats are:
            RGB
            L
            F
        """
        if not (isinstance(input, PIL.Image.Image) or isinstance(input, Image.Image)):
            raise TypeError, 'Must be called with PIL.Image.Image or Image.Image!'
        # mode dictionary:
        # (pil_mode : (ipl_depth, ipl_channels)
        mode_list = {
            "RGB" : (zcv.IPL_DEPTH_8U, 3),
            "L"   : (zcv.IPL_DEPTH_8U, 1),
            "F"   : (zcv.IPL_DEPTH_32F, 1)
            }
        if not mode_list.has_key(input.mode):
            raise ValueError, 'unknown or unsupported input mode'
        result = zcv.cvCreateImage(
            zcv.cvSize(input.size[0], input.size[1]),  # size
            mode_list[input.mode][0],  # depth
            mode_list[input.mode][1]  # channels
            )
        # set imageData
        result.imageData = input.tostring()
        return result
Example #3
0
 def __init__(self,size,use_previous=0,winsize=(7,7)):
     self.use_previous=use_previous
     self.winsize=zcv.cvSize(winsize[0],winsize[1])
     self.imgprev=None
     self.imgvelx=numpy.ndarray(shape=(size[0],size[1]),dtype=numpy.float32)
     self.cvimgvelx=zcv.NumPy2CvMatFast(self.imgvelx)
     self.imgvely=numpy.ndarray(shape=(size[0],size[1]),dtype=numpy.float32)
     self.cvimgvely=zcv.NumPy2CvMatFast(self.imgvely)
Example #4
0
def NumPy2zIplFastWithCopy(input):
        mode_list = {
            numpy.dtype(numpy.uint8) : zcv.IPL_DEPTH_8U,
            numpy.dtype(numpy.uint16) : zcv.IPL_DEPTH_16U,
            numpy.dtype(numpy.int8) : zcv.IPL_DEPTH_8S,
            numpy.dtype(numpy.int16) : zcv.IPL_DEPTH_16S,
            numpy.dtype(numpy.int32) : zcv.IPL_DEPTH_32S,
            numpy.dtype(numpy.float32) : zcv.IPL_DEPTH_32F,
            numpy.dtype(numpy.float64) : zcv.IPL_DEPTH_64F,
            }
        if not mode_list.has_key(input.dtype):
            raise ValueError, 'unknown or unsupported input mode'
        result = zcv.cvCreateImage(zcv.cvSize(input.shape[1], input.shape[0]),  # size
            mode_list[input.dtype],  # depth
            input.shape[2]
            )
        result.imageData = input.tostring()
        return result    
Example #5
0
def snake(src,alpha=0.45,beta=0.2,gamma=0.45,max_iter=1000,epsilon=0.001,length=int(50),neigborhoodsize=(10,10)):
  CV_VALUE=1
  if (src.ndim==2):
      src=src.reshape(src.shape+(1,))
  if (src.shape[2]!=1):
      src=src.mean(axis=2)
  src=src.astype(numpy.uint8)
  w2,h2=src.shape[1]/2,src.shape[0]/2
  points=(numpy.vstack([scipy.cos(numpy.arange(0,scipy.pi*2,scipy.pi*2./length))*w2+w2,scipy.sin(numpy.arange(0,scipy.pi*2,scipy.pi*2./length))*h2+h2])).T.astype(numpy.int32)
  alpha=numpy.array([alpha], dtype=numpy.float32)
  beta=numpy.array([beta], dtype=numpy.float32)
  gamma=numpy.array([gamma], dtype=numpy.float32)
  size=zopencv.cvSize(neigborhoodsize[0]|1,neigborhoodsize[1]|1)
  criteria=zopencv.CvTermCriteria()
  criteria.type=zopencv.CV_TERMCRIT_ITER+zopencv.CV_TERMCRIT_EPS;
  criteria.max_iter=max_iter;
  criteria.epsilon=epsilon;
  zopencv.cvSnakeImage( src, zopencv.memory_addr_of_numpy_array(points),length,alpha,beta, gamma,CV_VALUE,size,criteria,0 );
  return points