Python cv2.getRectSubPix() Examples
The following are 30
code examples of cv2.getRectSubPix().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cv2
, or try the search function
.
Example #1
Source File: mosse.py From OpenCV-Python-Tutorial with MIT License | 7 votes |
def update(self, frame, rate = 0.125): (x, y), (w, h) = self.pos, self.size self.last_img = img = cv2.getRectSubPix(frame, (w, h), (x, y)) img = self.preprocess(img) self.last_resp, (dx, dy), self.psr = self.correlate(img) self.good = self.psr > 8.0 if not self.good: return self.pos = x+dx, y+dy self.last_img = img = cv2.getRectSubPix(frame, (w, h), self.pos) img = self.preprocess(img) A = cv2.dft(img, flags=cv2.DFT_COMPLEX_OUTPUT) H1 = cv2.mulSpectrums(self.G, A, 0, conjB=True) H2 = cv2.mulSpectrums( A, A, 0, conjB=True) self.H1 = self.H1 * (1.0-rate) + H1 * rate self.H2 = self.H2 * (1.0-rate) + H2 * rate self.update_kernel()
Example #2
Source File: mosse.py From OpenCV-Python-Tutorial with MIT License | 6 votes |
def __init__(self, frame, rect): x1, y1, x2, y2 = rect w, h = map(cv2.getOptimalDFTSize, [x2-x1, y2-y1]) x1, y1 = (x1+x2-w)//2, (y1+y2-h)//2 self.pos = x, y = x1+0.5*(w-1), y1+0.5*(h-1) self.size = w, h img = cv2.getRectSubPix(frame, (w, h), (x, y)) self.win = cv2.createHanningWindow((w, h), cv2.CV_32F) g = np.zeros((h, w), np.float32) g[h//2, w//2] = 1 g = cv2.GaussianBlur(g, (-1, -1), 2.0) g /= g.max() self.G = cv2.dft(g, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 = np.zeros_like(self.G) self.H2 = np.zeros_like(self.G) for i in xrange(128): a = self.preprocess(rnd_warp(img)) A = cv2.dft(a, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 += cv2.mulSpectrums(self.G, A, 0, conjB=True) self.H2 += cv2.mulSpectrums( A, A, 0, conjB=True) self.update_kernel() self.update(frame)
Example #3
Source File: mosse.py From PyCV-time with MIT License | 6 votes |
def __init__(self, frame, rect): x1, y1, x2, y2 = rect w, h = map(cv2.getOptimalDFTSize, [x2-x1, y2-y1]) x1, y1 = (x1+x2-w)//2, (y1+y2-h)//2 self.pos = x, y = x1+0.5*(w-1), y1+0.5*(h-1) self.size = w, h img = cv2.getRectSubPix(frame, (w, h), (x, y)) self.win = cv2.createHanningWindow((w, h), cv2.CV_32F) g = np.zeros((h, w), np.float32) g[h//2, w//2] = 1 g = cv2.GaussianBlur(g, (-1, -1), 2.0) g /= g.max() self.G = cv2.dft(g, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 = np.zeros_like(self.G) self.H2 = np.zeros_like(self.G) for i in xrange(128): a = self.preprocess(rnd_warp(img)) A = cv2.dft(a, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 += cv2.mulSpectrums(self.G, A, 0, conjB=True) self.H2 += cv2.mulSpectrums( A, A, 0, conjB=True) self.update_kernel() self.update(frame)
Example #4
Source File: mosse.py From PyCV-time with MIT License | 6 votes |
def update(self, frame, rate = 0.125): (x, y), (w, h) = self.pos, self.size self.last_img = img = cv2.getRectSubPix(frame, (w, h), (x, y)) img = self.preprocess(img) self.last_resp, (dx, dy), self.psr = self.correlate(img) self.good = self.psr > 8.0 if not self.good: return self.pos = x+dx, y+dy self.last_img = img = cv2.getRectSubPix(frame, (w, h), self.pos) img = self.preprocess(img) A = cv2.dft(img, flags=cv2.DFT_COMPLEX_OUTPUT) H1 = cv2.mulSpectrums(self.G, A, 0, conjB=True) H2 = cv2.mulSpectrums( A, A, 0, conjB=True) self.H1 = self.H1 * (1.0-rate) + H1 * rate self.H2 = self.H2 * (1.0-rate) + H2 * rate self.update_kernel()
Example #5
Source File: mosse.py From PyCV-time with MIT License | 6 votes |
def __init__(self, frame, rect): x1, y1, x2, y2 = rect w, h = map(cv2.getOptimalDFTSize, [x2-x1, y2-y1]) x1, y1 = (x1+x2-w)//2, (y1+y2-h)//2 self.pos = x, y = x1+0.5*(w-1), y1+0.5*(h-1) self.size = w, h img = cv2.getRectSubPix(frame, (w, h), (x, y)) self.win = cv2.createHanningWindow((w, h), cv2.CV_32F) g = np.zeros((h, w), np.float32) g[h//2, w//2] = 1 g = cv2.GaussianBlur(g, (-1, -1), 2.0) g /= g.max() self.G = cv2.dft(g, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 = np.zeros_like(self.G) self.H2 = np.zeros_like(self.G) for i in xrange(128): a = self.preprocess(rnd_warp(img)) A = cv2.dft(a, flags=cv2.DFT_COMPLEX_OUTPUT) self.H1 += cv2.mulSpectrums(self.G, A, 0, conjB=True) self.H2 += cv2.mulSpectrums( A, A, 0, conjB=True) self.update_kernel() self.update(frame)
Example #6
Source File: mosse.py From pyCFTrackers with MIT License | 6 votes |
def update(self,current_frame,vis=False): if len(current_frame.shape)!=2: assert current_frame.shape[2]==3 current_frame=cv2.cvtColor(current_frame,cv2.COLOR_BGR2GRAY) current_frame=current_frame.astype(np.float32)/255 Hi=self._Ai/self._Bi fi=cv2.getRectSubPix(current_frame,(int(round(self.w)),int(round(self.h))),self._center) fi=self._preprocessing(fi,self.cos_window) Gi=Hi*np.fft.fft2(fi) gi=np.real(np.fft.ifft2(Gi)) if vis is True: self.score=gi curr=np.unravel_index(np.argmax(gi, axis=None),gi.shape) dy,dx=curr[0]-(self.h/2),curr[1]-(self.w/2) x_c,y_c=self._center x_c+=dx y_c+=dy self._center=(x_c,y_c) fi=cv2.getRectSubPix(current_frame,(int(round(self.w)),int(round(self.h))),self._center) fi=self._preprocessing(fi,self.cos_window) Fi=np.fft.fft2(fi) self._Ai=self.interp_factor*(self._G*np.conj(Fi))+(1-self.interp_factor)*self._Ai self._Bi=self.interp_factor*(Fi*np.conj(Fi))+(1-self.interp_factor)*self._Bi return [self._center[0]-self.w/2,self._center[1]-self.h/2,self.w,self.h]
Example #7
Source File: mosse.py From pyCFTrackers with MIT License | 6 votes |
def init(self,first_frame,bbox): if len(first_frame.shape)!=2: assert first_frame.shape[2]==3 first_frame=cv2.cvtColor(first_frame,cv2.COLOR_BGR2GRAY) first_frame=first_frame.astype(np.float32)/255 x,y,w,h=tuple(bbox) self._center=(x+w/2,y+h/2) self.w,self.h=w,h w,h=int(round(w)),int(round(h)) self.cos_window=cos_window((w,h)) self._fi=cv2.getRectSubPix(first_frame,(w,h),self._center) self._G=np.fft.fft2(gaussian2d_labels((w,h),self.sigma)) self.crop_size=(w,h) self._Ai=np.zeros_like(self._G) self._Bi=np.zeros_like(self._G) for _ in range(8): fi=self._rand_warp(self._fi) Fi=np.fft.fft2(self._preprocessing(fi,self.cos_window)) self._Ai+=self._G*np.conj(Fi) self._Bi+=Fi*np.conj(Fi)
Example #8
Source File: scale_estimator.py From pyCFTrackers with MIT License | 6 votes |
def init(self,im,pos,base_target_sz,current_scale_factor): w,h=base_target_sz avg_dim = (w + h) / 2.5 self.scale_sz = ((w + avg_dim) / current_scale_factor, (h + avg_dim) / current_scale_factor) self.scale_sz0 = self.scale_sz self.cos_window_scale = cos_window((self.scale_sz_window[0], self.scale_sz_window[1])) self.mag = self.cos_window_scale.shape[0] / np.log(np.sqrt((self.cos_window_scale.shape[0] ** 2 + self.cos_window_scale.shape[1] ** 2) / 4)) # scale lp patchL = cv2.getRectSubPix(im, (int(np.floor(current_scale_factor * self.scale_sz[0])), int(np.floor(current_scale_factor * self.scale_sz[1]))), pos) patchL = cv2.resize(patchL, self.scale_sz_window) patchLp = cv2.logPolar(patchL.astype(np.float32), ((patchL.shape[1] - 1) / 2, (patchL.shape[0] - 1) / 2), self.mag, flags=cv2.INTER_LINEAR + cv2.WARP_FILL_OUTLIERS) self.model_patchLp = extract_hog_feature(patchLp, cell_size=4)
Example #9
Source File: csk.py From pyCFTrackers with MIT License | 6 votes |
def update(self,current_frame,vis=False): if len(current_frame.shape)==3: assert current_frame.shape[2]==3 current_frame=cv2.cvtColor(current_frame,cv2.COLOR_BGR2GRAY) current_frame=current_frame.astype(np.float32) z=cv2.getRectSubPix(current_frame,(int(round(2*self.w)),int(round(2*self.h))),self._center)/255-0.5 z=z*self._window self.z=z responses=self._detection(self.alphaf,self.x,z) if vis is True: self.score=responses curr=np.unravel_index(np.argmax(responses,axis=None),responses.shape) dy=curr[0]-self._init_response_center[0] dx=curr[1]-self._init_response_center[1] x_c, y_c = self._center x_c -= dx y_c -= dy self._center = (x_c, y_c) new_x=cv2.getRectSubPix(current_frame,(2*self.w,2*self.h),self._center)/255-0.5 new_x=new_x*self._window self.alphaf=self.interp_factor*self._training(new_x,self.y)+(1-self.interp_factor)*self.alphaf self.x=self.interp_factor*new_x+(1-self.interp_factor)*self.x return [self._center[0]-self.w/2,self._center[1]-self.h/2,self.w,self.h]
Example #10
Source File: csk.py From pyCFTrackers with MIT License | 6 votes |
def init(self,first_frame,bbox): if len(first_frame.shape)==3: assert first_frame.shape[2]==3 first_frame=cv2.cvtColor(first_frame,cv2.COLOR_BGR2GRAY) first_frame=first_frame.astype(np.float32) bbox=np.array(bbox).astype(np.int64) x,y,w,h=tuple(bbox) self._center=(x+w/2,y+h/2) self.w,self.h=w,h self._window=cos_window((int(round(2*w)),int(round(2*h)))) self.crop_size=(int(round(2*w)),int(round(2*h))) self.x=cv2.getRectSubPix(first_frame,(int(round(2*w)),int(round(2*h))),self._center)/255-0.5 self.x=self.x*self._window s=np.sqrt(w*h)/16 self.y=gaussian2d_labels((int(round(2*w)),int(round(2*h))),s) self._init_response_center=np.unravel_index(np.argmax(self.y,axis=None),self.y.shape) self.alphaf=self._training(self.x,self.y)
Example #11
Source File: strcf.py From pyCFTrackers with MIT License | 6 votes |
def get_sub_window(self, img, center, model_sz, scaled_sz=None): model_sz = (int(model_sz[0]), int(model_sz[1])) if scaled_sz is None: sz = model_sz else: sz = scaled_sz sz = (max(int(sz[0]), 2), max(int(sz[1]), 2)) """ w,h=sz xs = (np.floor(center[0]) + np.arange(w) - np.floor(w / 2)).astype(np.int64) ys = (np.floor(center[1]) + np.arange(h) - np.floor(h / 2)).astype(np.int64) xs[xs < 0] = 0 ys[ys < 0] = 0 xs[xs >= img.shape[1]] = img.shape[1] - 1 ys[ys >= img.shape[0]] = img.shape[0] - 1 im_patch = img[ys, :][:, xs] """ im_patch = cv2.getRectSubPix(img, sz, center) if scaled_sz is not None: im_patch = mex_resize(im_patch, model_sz) return im_patch.astype(np.uint8)
Example #12
Source File: staple.py From pyCFTrackers with MIT License | 6 votes |
def get_scale_subwindow(self, im, center, base_target_sz, scale_factors, scale_window, scale_model_sz, hog_scale_cell_sz): n_scales = len(self.scale_factors) out = None for s in range(n_scales): patch_sz = (int(base_target_sz[0] * scale_factors[s]), int(base_target_sz[1] * scale_factors[s])) patch_sz = (max(2, patch_sz[0]), max(2, patch_sz[1])) im_patch = cv2.getRectSubPix(im, patch_sz, center) im_patch_resized = self.mex_resize(im_patch, scale_model_sz).astype(np.uint8) tmp = extract_hog_feature(im_patch_resized, cell_size=hog_scale_cell_sz) if out is None: out = tmp.flatten() * scale_window[s] else: out = np.c_[out, tmp.flatten() * scale_window[s]] return out
Example #13
Source File: kcf.py From pyCFTrackers with MIT License | 6 votes |
def _crop(self,img,center,target_sz): if len(img.shape)==2: img=img[:,:,np.newaxis] w,h=target_sz """ # the same as matlab code w=int(np.floor((1+self.padding)*w)) h=int(np.floor((1+self.padding)*h)) xs=(np.floor(center[0])+np.arange(w)-np.floor(w/2)).astype(np.int64) ys=(np.floor(center[1])+np.arange(h)-np.floor(h/2)).astype(np.int64) xs[xs<0]=0 ys[ys<0]=0 xs[xs>=img.shape[1]]=img.shape[1]-1 ys[ys>=img.shape[0]]=img.shape[0]-1 cropped=img[ys,:][:,xs] """ cropped=cv2.getRectSubPix(img,(int(np.floor((1+self.padding)*w)),int(np.floor((1+self.padding)*h))),center) return cropped
Example #14
Source File: helpers.py From songoku with MIT License | 6 votes |
def crop_minAreaRect(src, rect): # Get center, size, and angle from rect center, size, theta = rect # Angle correction if theta < -45: theta += 90 # Convert to int center, size = tuple(map(int, center)), tuple(map(int, size)) # Get rotation matrix for rectangle M = cv2.getRotationMatrix2D( center, theta, 1) # Perform rotation on src image dst = cv2.warpAffine(src, M, (src.shape[1], src.shape[0])) out = cv2.getRectSubPix(dst, size, center) return out
Example #15
Source File: scale_estimator.py From pyCFTrackers with MIT License | 5 votes |
def update(self,im,pos,base_target_sz,current_scale_factor): patchL = cv2.getRectSubPix(im, (int(np.floor(current_scale_factor * self.scale_sz[0])), int(np.floor(current_scale_factor* self.scale_sz[1]))),pos) patchL = cv2.resize(patchL, self.scale_sz_window) # convert into logpolar patchLp = cv2.logPolar(patchL.astype(np.float32), ((patchL.shape[1] - 1) / 2, (patchL.shape[0] - 1) / 2), self.mag, flags=cv2.INTER_LINEAR + cv2.WARP_FILL_OUTLIERS) patchLp = extract_hog_feature(patchLp, cell_size=4) tmp_sc, _, _ = self.estimate_scale(self.model_patchLp, patchLp, self.mag) tmp_sc = np.clip(tmp_sc, a_min=0.6, a_max=1.4) scale_factor=current_scale_factor*tmp_sc self.model_patchLp = (1 - self.learning_rate_scale) * self.model_patchLp + self.learning_rate_scale * patchLp return scale_factor
Example #16
Source File: browse.py From OpenCV-Python-Tutorial with MIT License | 5 votes |
def onmouse(event, x, y, flags, param): h, w = img.shape[:2] h1, w1 = small.shape[:2] x, y = 1.0*x*h/h1, 1.0*y*h/h1 zoom = cv2.getRectSubPix(img, (800, 600), (x+0.5, y+0.5)) cv2.imshow('zoom', zoom)
Example #17
Source File: browse.py From PyCV-time with MIT License | 5 votes |
def onmouse(event, x, y, flags, param): h, w = img.shape[:2] h1, w1 = small.shape[:2] x, y = 1.0*x*h/h1, 1.0*y*h/h1 zoom = cv2.getRectSubPix(img, (800, 600), (x+0.5, y+0.5)) cv2.imshow('zoom', zoom)
Example #18
Source File: plate_locate.py From EasyPR-python with Apache License 2.0 | 5 votes |
def rotation(self, in_img, rect_size, center, angle): ''' rect_size: (h, w) rotation an image ''' if len(in_img.shape) == 3: in_large = np.zeros((int(in_img.shape[0] * 1.5), int(in_img.shape[1] * 1.5), 3)).astype(in_img.dtype) else: in_large = np.zeros((int(in_img.shape[0] * 1.5), int(in_img.shape[1] * 1.5))).astype(in_img.dtype) x = int(max(in_large.shape[1] / 2 - center[0], 0)) y = int(max(in_large.shape[0] / 2 - center[1], 0)) width = int(min(in_img.shape[1], in_large.shape[1] - x)) height = int(min(in_img.shape[0], in_large.shape[0] - y)) if width != in_img.shape[1] and height != in_img.shape[0]: return in_img, False new_center = (in_large.shape[1] / 2, in_large.shape[0] / 2) rot_mat = cv2.getRotationMatrix2D(new_center, angle, 1) mat_rotated = cv2.warpAffine(in_large, rot_mat, (in_large.shape[1], in_large.shape[0]), cv2.INTER_CUBIC) img_crop = cv2.getRectSubPix(mat_rotated, (int(rect_size[0]), int(rect_size[0])), new_center) return img_crop, True
Example #19
Source File: browse.py From PyCV-time with MIT License | 5 votes |
def onmouse(event, x, y, flags, param): h, w = img.shape[:2] h1, w1 = small.shape[:2] x, y = 1.0*x*h/h1, 1.0*y*h/h1 zoom = cv2.getRectSubPix(img, (800, 600), (x+0.5, y+0.5)) cv2.imshow('zoom', zoom)
Example #20
Source File: MFTracker.py From SimpleCV2 with BSD 3-Clause "New" or "Revised" License | 5 votes |
def normCrossCorrelation(img1, img2, pt0, pt1, status, winsize, method=cv2.cv.CV_TM_CCOEFF_NORMED): """ **SUMMARY** (Dev Zone) Calculates normalized cross correlation for every point. **PARAMETERS** img1 - Image 1. img2 - Image 2. pt0 - vector of points of img1 pt1 - vector of points of img2 status - Switch which point pairs should be calculated. if status[i] == 1 => match[i] is calculated. else match[i] = 0.0 winsize- Size of quadratic area around the point which is compared. method - Specifies the way how image regions are compared. see cv2.matchTemplate **RETURNS** match - Output: Array will contain ncc values. 0.0 if not calculated. """ nPts = len(pt0) match = np.zeros(nPts) for i in np.argwhere(status): i = i[0] patch1 = cv2.getRectSubPix(img1,(winsize,winsize),tuple(pt0[i])) patch2 = cv2.getRectSubPix(img2,(winsize,winsize),tuple(pt1[i])) match[i] = cv2.matchTemplate(patch1,patch2,method) return match
Example #21
Source File: panda3d_util.py From citysim3d with MIT License | 5 votes |
def xy_depth_to_XYZ(lens, points_xy, depth_image): # normalize between -1.0 and 1.0 points_2d = xy_to_points2d(lens, points_xy) # append z depth to it points_z = np.array([cv2.getRectSubPix(depth_image, (1, 1), tuple(point_xy))[0][0] for point_xy in points_xy]) points_2d = np.c_[points_2d, points_z] # extrude to 3d points in the camera's local frame points_XYZ = extrude_depth(lens, points_2d) return points_XYZ
Example #22
Source File: bacf.py From pyCFTrackers with MIT License | 5 votes |
def get_sub_window(self, img, center, model_sz, scaled_sz=None): model_sz = (int(model_sz[0]), int(model_sz[1])) if scaled_sz is None: sz = model_sz else: sz = scaled_sz sz = (max(int(sz[0]), 2), max(int(sz[1]), 2)) im_patch = cv2.getRectSubPix(img, sz, center) if scaled_sz is not None: im_patch = mex_resize(im_patch, model_sz) return im_patch.astype(np.uint8)
Example #23
Source File: csrdcf.py From pyCFTrackers with MIT License | 5 votes |
def get_csr_features(self,img,center,scale,template_sz,resize_sz,cell_size): center=(int(center[0]),int(center[1])) patch=cv2.getRectSubPix(img,patchSize=(int(scale*template_sz[0]),int(scale*template_sz[1])), center=center) patch=cv2.resize(patch,resize_sz).astype(np.uint8) hog_feature=extract_hog_feature(patch,cell_size)[:,:,:18] # gray feature is included in the cn features cn_feature=extract_cn_feature(patch,cell_size) features=np.concatenate((hog_feature,cn_feature),axis=2) return features
Example #24
Source File: mosse.py From open-vot with MIT License | 5 votes |
def init(self, image, init_rect): if image.ndim == 3: image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) init_rect = init_rect.astype(int) init_rect[2:] += init_rect[:2] x1, y1, x2, y2 = init_rect w, h = map(cv2.getOptimalDFTSize, [x2 - x1, y2 - y1]) x1, y1 = (x1 + x2 - w) // 2, (y1 + y2 - h) // 2 self.t_center = x, y = x1 + 0.5 * (w - 1), y1 + 0.5 * (h - 1) self.t_sz = w, h img = cv2.getRectSubPix(image, (w, h), (x, y)) self.win = cv2.createHanningWindow((w, h), cv2.CV_32F) g = np.zeros((h, w), np.float32) g[h // 2, w // 2] = 1 g = cv2.GaussianBlur(g, (-1, -1), self.cfg.sigma) g /= g.max() self.G = cv2.dft(g, flags=cv2.DFT_COMPLEX_OUTPUT) self.A = np.zeros_like(self.G) self.B = np.zeros_like(self.G) for _i in range(128): patch = self._preprocess(self._random_warp(img)) F = cv2.dft(patch, flags=cv2.DFT_COMPLEX_OUTPUT) self.A += cv2.mulSpectrums(self.G, F, 0, conjB=True) self.B += cv2.mulSpectrums(F, F, 0, conjB=True) self._update_kernel() self.update(image)
Example #25
Source File: mosse.py From open-vot with MIT License | 5 votes |
def update(self, image): if image.ndim == 3: image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) (x, y), (w, h) = self.t_center, self.t_sz self.last_img = img = cv2.getRectSubPix(image, (w, h), (x, y)) img = self._preprocess(img) self.last_resp, (dx, dy), self.psr = self._linear_correlation(img) self.good = self.psr > self.cfg.psr_thr if self.good: self.t_center = x + dx, y + dy self.last_img = img = cv2.getRectSubPix( image, (w, h), self.t_center) img = self._preprocess(img) F = cv2.dft(img, flags=cv2.DFT_COMPLEX_OUTPUT) A = cv2.mulSpectrums(self.G, F, 0, conjB=True) B = cv2.mulSpectrums(F, F, 0, conjB=True) self.A = self.A * (1.0 - self.cfg.interp_factor) + \ A * self.cfg.interp_factor self.B = self.B * (1.0 - self.cfg.interp_factor) + \ B * self.cfg.interp_factor self._update_kernel() return np.array([x - 0.5 * (w - 1), y - 0.5 * (h - 1), w, h])
Example #26
Source File: class_PlateDetection.py From ALPR_System with Apache License 2.0 | 5 votes |
def crop_rotated_contour(self, plate, rect): """ Rotate the plate and crop the plate with its rotation """ box = cv2.boxPoints(rect) box = np.int0(box) W = rect[1][0] H = rect[1][1] Xs = [i[0] for i in box] Ys = [i[1] for i in box] x1 = min(Xs) x2 = max(Xs) y1 = min(Ys) y2 = max(Ys) angle = rect[2] if angle < (-45): angle += 90 # Center of rectangle in source image center = ((x1 + x2)/2,(y1 + y2)/2) # Size of the upright rectangle bounding the rotated rectangle size = (x2-x1, y2-y1) M = cv2.getRotationMatrix2D((size[0]/2, size[1]/2), angle, 1.0) # Cropped upright rectangle cropped = cv2.getRectSubPix(plate, size, center) cropped = cv2.warpAffine(cropped, M, size) croppedW = H if H > W else W croppedH = H if H < W else W # Final cropped & rotated rectangle croppedRotated = cv2.getRectSubPix(cropped, (int(croppedW), int(croppedH)), (size[0]/2, size[1]/2)) return croppedRotated
Example #27
Source File: dsst.py From pyCFTrackers with MIT License | 5 votes |
def get_translation_sample(self,im,center,model_sz,scale_factor,cos_window): patch_sz=(int(model_sz[0]*scale_factor),int(model_sz[1]*scale_factor)) im_patch=cv2.getRectSubPix(im,patch_sz,center) if model_sz[0]>patch_sz[1]: interpolation=cv2.INTER_LINEAR else: interpolation=cv2.INTER_AREA im_patch=cv2.resize(im_patch,model_sz,interpolation=interpolation) out=self.get_feature_map(im_patch) out=self._get_windowed(out,cos_window) return out
Example #28
Source File: mccth_staple.py From pyCFTrackers with MIT License | 5 votes |
def get_sub_window(self, img, center, model_sz, scaled_sz=None): model_sz = (int(model_sz[0]), int(model_sz[1])) if scaled_sz is None: sz = model_sz else: sz = scaled_sz sz = (max(int(sz[0]), 2), max(int(sz[1]), 2)) im_patch = cv2.getRectSubPix(img, sz, center) if scaled_sz is not None: im_patch = self.mex_resize(im_patch, model_sz).astype(np.uint8) return im_patch
Example #29
Source File: cn.py From pyCFTrackers with MIT License | 5 votes |
def get_sub_window(self,im,pos,sz): patch=cv2.getRectSubPix(im,patchSize=sz,center=pos).astype(np.uint8) feature=extract_cn_feature(patch,cell_size=1) return feature
Example #30
Source File: samf.py From pyCFTrackers with MIT License | 5 votes |
def init(self,first_frame,bbox): assert len(first_frame.shape)==3 and first_frame.shape[2]==3 bbox = np.array(bbox).astype(np.int64) x0, y0, w, h = tuple(bbox) if w*h>=100**2: self.resize=True x0,y0,w,h=x0/2,y0/2,w/2,h/2 first_frame=cv2.resize(first_frame,dsize=None,fx=0.5,fy=0.5).astype(np.uint8) self.crop_size = (int(np.floor(w * (1 + self.padding))), int(np.floor(h * (1 + self.padding))))# for vis self._center = (x0 + w / 2,y0 + h / 2) self.w, self.h = w, h self.window_size=(int(np.floor(w*(1+self.padding)))//self.cell_size,int(np.floor(h*(1+self.padding)))//self.cell_size) self._window = cos_window(self.window_size) s=np.sqrt(w*h)*self.output_sigma_factor/self.cell_size self.yf = fft2(gaussian2d_rolled_labels(self.window_size, s)) self.search_size=np.linspace(0.985,1.015,7) self.target_sz=(w,h) #param0=[self._center[0],self._center[1],1, # 0,1/(self.crop_size[1]/self.crop_size[0]), # 0] #param0=self.affparam2mat(param0) #patch=self.warpimg(first_frame.astype(np.float32),param0,self.crop_size).astype(np.uint8) patch = cv2.getRectSubPix(first_frame,self.crop_size, self._center) patch = cv2.resize(patch, dsize=self.crop_size) hc_features=self.get_features(patch,self.cell_size) hc_features=hc_features*self._window[:,:,None] xf=fft2(hc_features) kf=self._kernel_correlation(xf,xf,kernel=self.kernel) self.model_alphaf=self.yf/(kf+self.lambda_) self.model_xf=xf