Python cv2.minMaxLoc() Examples
The following are 30
code examples of cv2.minMaxLoc().
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: split_img_generate_data.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 9 votes |
def match_img(image, template, value): """ :param image: 图片 :param template: 模板 :param value: 阈值 :return: 水印坐标 描述:用于获得这幅图片模板对应的位置坐标,用途:校准元素位置信息 """ res = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED) threshold = value min_v, max_v, min_pt, max_pt = cv2.minMaxLoc(res) if max_v < threshold: return False if not max_pt[0] in range(10, 40) or max_pt[1] > 20: return False return max_pt
Example #2
Source File: image_detect_02.py From image-detect with MIT License | 7 votes |
def matchAB(fileA, fileB): # 读取图像数据 imgA = cv2.imread(fileA) imgB = cv2.imread(fileB) # 转换成灰色 grayA = cv2.cvtColor(imgA, cv2.COLOR_BGR2GRAY) grayB = cv2.cvtColor(imgB, cv2.COLOR_BGR2GRAY) # 获取图片A的大小 height, width = grayA.shape # 取局部图像,寻找匹配位置 result_window = np.zeros((height, width), dtype=imgA.dtype) for start_y in range(0, height-100, 10): for start_x in range(0, width-100, 10): window = grayA[start_y:start_y+100, start_x:start_x+100] match = cv2.matchTemplate(grayB, window, cv2.TM_CCOEFF_NORMED) _, _, _, max_loc = cv2.minMaxLoc(match) matched_window = grayB[max_loc[1]:max_loc[1]+100, max_loc[0]:max_loc[0]+100] result = cv2.absdiff(window, matched_window) result_window[start_y:start_y+100, start_x:start_x+100] = result plt.imshow(result_window) plt.show()
Example #3
Source File: scene_detector.py From ATX with Apache License 2.0 | 7 votes |
def get_match_confidence(img1, img2, mask=None): if img1.shape != img2.shape: return False ## first try, using absdiff # diff = cv2.absdiff(img1, img2) # h, w, d = diff.shape # total = h*w*d # num = (diff<20).sum() # print 'is_match', total, num # return num > total*0.90 if mask is not None: img1 = img1.copy() img1[mask!=0] = 0 img2 = img2.copy() img2[mask!=0] = 0 ## using match match = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED) _, confidence, _, _ = cv2.minMaxLoc(match) # print confidence return confidence
Example #4
Source File: tracker.py From KCF-DSST-py with MIT License | 6 votes |
def detect_scale(self, image): xsf = self.get_scale_sample(image) # Compute AZ in the paper add_temp = cv2.reduce(complexMultiplication(self.sf_num, xsf), 0, cv2.REDUCE_SUM) # compute the final y scale_response = cv2.idft(complexDivisionReal(add_temp, (self.sf_den + self.scale_lambda)), None, cv2.DFT_REAL_OUTPUT) # Get the max point as the final scaling rate # pv:响应最大值 pi:相应最大点的索引数组 _, pv, _, pi = cv2.minMaxLoc(scale_response) return pi # 更新尺度
Example #5
Source File: 90_tflite-usbcamera-cpu-sync.py From PINTO_model_zoo with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #6
Source File: 90_tflite-usbcamera-cpu-sync.py From PINTO_model_zoo with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #7
Source File: openvino-usbcamera-cpu-ncs2-async.py From MobileNetV2-PoseEstimation with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #8
Source File: tm.py From fgo-bot with MIT License | 6 votes |
def find(self, im: str, threshold: float = None) -> Tuple[int, int]: """ Find the template image on screen and return its top-left coords. Return None if the matching value is less than `threshold`. :param im: the name of the image :param threshold: the threshold of matching. If not given, will be set to the default threshold. :return: the top-left coords of the result. Return (-1, -1) if not found. """ threshold = threshold or self.threshold assert self.screen is not None try: template = self.images[im] except KeyError: logger.error('Unexpected image name {}'.format(im)) return -1, -1 res = cv.matchTemplate(self.screen, template, TM_METHOD) _, max_val, _, max_loc = cv.minMaxLoc(res) logger.debug('max_val = {}, max_loc = {}'.format(max_val, max_loc)) return max_loc if max_val >= threshold else (-1, -1)
Example #9
Source File: tm.py From fgo-bot with MIT License | 6 votes |
def probability(self, im: str) -> float: """ Return the probability of the existence of given image. :param im: the name of the image. :return: the probability (confidence). """ assert self.screen is not None try: template = self.images[im] except KeyError: logger.error('Unexpected image name {}'.format(im)) return 0.0 res = cv.matchTemplate(self.screen, template, TM_METHOD) _, max_val, _, max_loc = cv.minMaxLoc(res) logger.debug('max_val = {}, max_loc = {}'.format(max_val, max_loc)) return max_val
Example #10
Source File: pixelmatch.py From ATX with Apache License 2.0 | 6 votes |
def locate_img(image, template): img = image.copy() res = cv2.matchTemplate(img, template, method) print res print res.shape cv2.imwrite('image/shape.png', res) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) print cv2.minMaxLoc(res) if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]: top_left = min_loc else: top_left = max_loc h, w = template.shape bottom_right = (top_left[0] + w, top_left[1]+h) cv2.rectangle(img, top_left, bottom_right, 255, 2) cv2.imwrite('image/tt.jpg', img)
Example #11
Source File: pixelmatch.py From airtest with BSD 3-Clause "New" or "Revised" License | 6 votes |
def locate_img(image, template): img = image.copy() res = cv2.matchTemplate(img, template, method) print res print res.shape cv2.imwrite('image/shape.png', res) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) print cv2.minMaxLoc(res) if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]: top_left = min_loc else: top_left = max_loc h, w = template.shape bottom_right = (top_left[0] + w, top_left[1]+h) cv2.rectangle(img, top_left, bottom_right, 255, 2) cv2.imwrite('image/tt.jpg', img)
Example #12
Source File: generate_test_csv_file.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 6 votes |
def match_img(image, template, value): """ :param image: 图片 :param template: 模板 :param value: 阈值 :return: 水印坐标 描述:用于获得这幅图片模板对应的位置坐标,用途:校准元素位置信息 """ res = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED) threshold = value min_v, max_v, min_pt, max_pt = cv2.minMaxLoc(res) if max_v < threshold: return False if not max_pt[0] in range(10, 40) or max_pt[1] > 20: return False return max_pt
Example #13
Source File: tpu-usbcamera-sync.py From MobileNetV2-PoseEstimation with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #14
Source File: cal_confidence.py From Airtest with Apache License 2.0 | 6 votes |
def cal_rgb_confidence(img_src_rgb, img_sch_rgb): """同大小彩图计算相似度.""" # BGR三通道心理学权重: weight = (0.114, 0.587, 0.299) src_bgr, sch_bgr = cv2.split(img_src_rgb), cv2.split(img_sch_rgb) # 计算BGR三通道的confidence,存入bgr_confidence: bgr_confidence = [0, 0, 0] for i in range(3): res_temp = cv2.matchTemplate(src_bgr[i], sch_bgr[i], cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res_temp) bgr_confidence[i] = max_val # 加权可信度 weighted_confidence = bgr_confidence[0] * weight[0] + bgr_confidence[1] * weight[1] + bgr_confidence[2] * weight[2] return weighted_confidence
Example #15
Source File: template.py From Airtest with Apache License 2.0 | 6 votes |
def find_template(im_source, im_search, threshold=0.8, rgb=False): """函数功能:找到最优结果.""" # 第一步:校验图像输入 check_source_larger_than_search(im_source, im_search) # 第二步:计算模板匹配的结果矩阵res res = _get_template_result_matrix(im_source, im_search) # 第三步:依次获取匹配结果 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) h, w = im_search.shape[:2] # 求取可信度: confidence = _get_confidence_from_matrix(im_source, im_search, max_loc, max_val, w, h, rgb) # 求取识别位置: 目标中心 + 目标区域: middle_point, rectangle = _get_target_rectangle(max_loc, w, h) best_match = generate_result(middle_point, rectangle, confidence) LOGGING.debug("threshold=%s, result=%s" % (threshold, best_match)) return best_match if confidence >= threshold else None
Example #16
Source File: openvino-usbcamera-cpu-ncs2-sync.py From MobileNetV2-PoseEstimation with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #17
Source File: imagesearch.py From python-imagesearch with MIT License | 6 votes |
def imagesearcharea(image, x1, y1, x2, y2, precision=0.8, im=None): if im is None: im = region_grabber(region=(x1, y1, x2, y2)) if is_retina: im.thumbnail((round(im.size[0] * 0.5), round(im.size[1] * 0.5))) # im.save('testarea.png') usefull for debugging purposes, this will save the captured region as "testarea.png" img_rgb = np.array(im) img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY) template = cv2.imread(image, 0) res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) if max_val < precision: return [-1, -1] return max_loc
Example #18
Source File: tflite-usbcamera-cpu-sync.py From MobileNetV2-PoseEstimation with MIT License | 6 votes |
def getKeypoints(probMap, threshold=0.1): mapSmooth = cv2.GaussianBlur(probMap, (3, 3), 0, 0) mapMask = np.uint8(mapSmooth>threshold) keypoints = [] contours = None try: #OpenCV4.x contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) except: #OpenCV3.x _, contours, _ = cv2.findContours(mapMask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: blobMask = np.zeros(mapMask.shape) blobMask = cv2.fillConvexPoly(blobMask, cnt, 1) maskedProbMap = mapSmooth * blobMask _, maxVal, _, maxLoc = cv2.minMaxLoc(maskedProbMap) keypoints.append(maxLoc + (probMap[maxLoc[1], maxLoc[0]],)) return keypoints
Example #19
Source File: kcf.py From open-vot with MIT License | 6 votes |
def _locate_target(self, score): def subpixel_peak(left, center, right): divisor = 2 * center - left - right if abs(divisor) < 1e-3: return 0 return 0.5 * (right - left) / divisor _, _, _, max_loc = cv2.minMaxLoc(score) loc = np.float32(max_loc) if max_loc[0] in range(1, score.shape[1] - 1): loc[0] += subpixel_peak( score[max_loc[1], max_loc[0] - 1], score[max_loc[1], max_loc[0]], score[max_loc[1], max_loc[0] + 1]) if max_loc[1] in range(1, score.shape[0] - 1): loc[1] += subpixel_peak( score[max_loc[1] - 1, max_loc[0]], score[max_loc[1], max_loc[0]], score[max_loc[1] + 1, max_loc[0]]) offset = loc - np.float32(score.shape[1::-1]) / 2 return offset
Example #20
Source File: thresholding.py From smashscan with MIT License | 6 votes |
def match_dmg_templates(self, frame): match_mat, max_val, tl = [None]*10, [0]*10, [(0, 0)]*10 for i in range(0, 10): match_mat[i] = cv2.matchTemplate(frame, self.num_img[0], cv2.TM_CCORR_NORMED, mask=self.num_mask[0]) _, max_val[i], _, tl[i] = cv2.minMaxLoc(match_mat[i]) # print(max_val[0]) br = (tl[0][0] + self.num_w, tl[0][1] + self.num_h) frame = cv2.rectangle(frame, tl[0], br, (255, 255, 255), 2) # Multi-template result searching # _, max_val_1, _, tl_1 = cv2.minMaxLoc(np.array(match_mat)) # print(tl_1) # A number of methods corresponding to the various trackbars available.
Example #21
Source File: dcf.py From open-vot with MIT License | 6 votes |
def _locate_target(self, score): def subpixel_peak(left, center, right): divisor = 2 * center - left - right if abs(divisor) < 1e-3: return 0 return 0.5 * (right - left) / divisor _, _, _, max_loc = cv2.minMaxLoc(score) loc = np.float32(max_loc) if max_loc[0] in range(1, score.shape[1] - 1): loc[0] += subpixel_peak( score[max_loc[1], max_loc[0] - 1], score[max_loc[1], max_loc[0]], score[max_loc[1], max_loc[0] + 1]) if max_loc[1] in range(1, score.shape[0] - 1): loc[1] += subpixel_peak( score[max_loc[1] - 1, max_loc[0]], score[max_loc[1], max_loc[0]], score[max_loc[1] + 1, max_loc[0]]) offset = loc - np.float32(score.shape[1::-1]) / 2 return offset
Example #22
Source File: pySaliencyMap.py From pliers with BSD 3-Clause "New" or "Revised" License | 6 votes |
def SMAvgLocalMax(self, src): # size stepsize = pySaliencyMapDefs.default_step_local width = src.shape[1] height = src.shape[0] # find local maxima numlocal = 0 lmaxmean = 0 for y in range(0, height-stepsize, stepsize): for x in range(0, width-stepsize, stepsize): localimg = src[y:y+stepsize, x:x+stepsize] lmin, lmax, dummy1, dummy2 = cv2.minMaxLoc(localimg) lmaxmean += lmax numlocal += 1 # averaging over all the local regions return lmaxmean / numlocal # normalization specific for the saliency map model
Example #23
Source File: template_matching.py From dual-fisheye-video-stitching with MIT License | 6 votes |
def main(): src = cv2.imread('src.jpg', cv2.IMREAD_GRAYSCALE) tpl = cv2.imread('tpl.jpg', cv2.IMREAD_GRAYSCALE) result = cv2.matchTemplate(src, tpl, cv2.TM_CCOEFF_NORMED) result = cv2.normalize(result, dst=None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=-1) minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(result) matchLoc = maxLoc draw1 = cv2.rectangle( src, matchLoc, (matchLoc[0] + tpl.shape[1], matchLoc[1] + tpl.shape[0]), 0, 2, 8, 0) draw2 = cv2.rectangle( result, matchLoc, (matchLoc[0] + tpl.shape[1], matchLoc[1] + tpl.shape[0]), 0, 2, 8, 0) cv2.imshow('draw1', draw1) cv2.imshow('draw2', draw2) cv2.waitKey(0) print src.shape print tpl.shape print result.shape print matchLoc
Example #24
Source File: tracker.py From KCF-DSST-py with MIT License | 6 votes |
def detect(self, z, x): k = self.gaussianCorrelation(x, z) # 得到响应图 res = real(fftd(complexMultiplication(self._alphaf, fftd(k)), True)) # pv:响应最大值 pi:相应最大点的索引数组 _, pv, _, pi = cv2.minMaxLoc(res) # 得到响应最大的点索引的float表示 p = [float(pi[0]), float(pi[1])] # 使用幅值做差来定位峰值的位置 if pi[0] > 0 and pi[0] < res.shape[1] - 1: p[0] += self.subPixelPeak(res[pi[1], pi[0] - 1], pv, res[pi[1], pi[0] + 1]) if pi[1] > 0 and pi[1] < res.shape[0] - 1: p[1] += self.subPixelPeak(res[pi[1] - 1, pi[0]], pv, res[pi[1] + 1, pi[0]]) # 得出偏离采样中心的位移 p[0] -= res.shape[1] / 2. p[1] -= res.shape[0] / 2. # 返回偏离采样中心的位移和峰值 return p, pv # 基于当前帧更新目标位置
Example #25
Source File: kcftracker.py From KCFnb with MIT License | 6 votes |
def detect(self, z, x): k = self.gaussianCorrelation(x, z) res = real(fftd(complexMultiplication(self._alphaf, fftd(k)), True)) _, pv, _, pi = cv2.minMaxLoc(res) # pv:float pi:tuple of int p = [float(pi[0]), float(pi[1])] # cv::Point2f, [x,y] #[float,float] if(pi[0]>0 and pi[0]<res.shape[1]-1): p[0] += self.subPixelPeak(res[pi[1],pi[0]-1], pv, res[pi[1],pi[0]+1]) if(pi[1]>0 and pi[1]<res.shape[0]-1): p[1] += self.subPixelPeak(res[pi[1]-1,pi[0]], pv, res[pi[1]+1,pi[0]]) p[0] -= res.shape[1] / 2. p[1] -= res.shape[0] / 2. return p, pv
Example #26
Source File: auto.py From airtest with BSD 3-Clause "New" or "Revised" License | 5 votes |
def template_match(source_image, template_image, region_center, option=0): """ template match @param source_image: np.array(input source image) @param template_image: np.array(input template image) @param region_center: list(if not None, it means source_image is part of origin target image, otherwise, it is origin target image) @param option: int(if it is not zero, source_image and template_image will be global thresholding) @return max_val: float(the max match value) @return [x,y]: list(the best match position) """ template_width = template_image.shape[1] template_height = template_image.shape[0] [source_width,source_height] = [source_image.shape[1],source_image.shape[0]] width = source_width - template_width + 1 height = source_height - template_height + 1 if width < 1 or height < 1: return None if option == 0: [s_thresh, t_thresh] = [source_image, template_image] else: s_ret,s_thresh = cv2.threshold(source_image,200,255,cv2.THRESH_TOZERO) t_ret,t_thresh = cv2.threshold(template_image,200,255,cv2.THRESH_TOZERO) '''template match''' result = cv2.matchTemplate(s_thresh, t_thresh, cv2.cv.CV_TM_CCORR_NORMED) (min_val, max_val, minloc, maxloc) = cv2.minMaxLoc(result) if len(region_center): x = int(maxloc[0]+region_center[0]-source_width/2) y = int(maxloc[1]+region_center[1]-source_height/2) else: [x,y] = maxloc return max_val, [x,y] #rotate template match
Example #27
Source File: test_dummy.py From airtest with BSD 3-Clause "New" or "Revised" License | 5 votes |
def other(): scr = cv2.imread(screenFile, 0) icon = cv2.imread(iconFile, 0) res = cv2.matchTemplate(icon, scr, cv2.TM_CCOEFF) minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(res) topLeft = maxLoc print topLeft
Example #28
Source File: Fic.py From RENAT with Apache License 2.0 | 5 votes |
def match_template(self,img,template,threshold=u"0.8"): """ Matches a template in an image using TM_CCOEFF_NORMED method Both `img` and `tempalte` are BGR ndarray object. The result is in the the center and boundary of the match. """ _method = cv2.TM_CCOEFF_NORMED gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) gray_template = cv2.cvtColor(template,cv2.COLOR_BGR2GRAY) w,h = gray_template.shape[::-1] res = cv2.matchTemplate(gray_img,gray_template,_method) loc = np.where(res >= float(threshold)) if len(loc[0]) != 0 and len(loc[1]) != 0: min_val,max_val,min_loc,max_loc = cv2.minMaxLoc(res) if _method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]: top_left = min_loc else: top_left = max_loc bottom_right = (top_left[0] + w, top_left[1] + h) mx = int((top_left[0] + bottom_right[0])/2) my = int((top_left[1] + bottom_right[1])/2) result = ((mx,my),(top_left[0],top_left[1],bottom_right[0],bottom_right[1])) BuiltIn().log("Found image at %s" % str(result)) else: result = (None,None) BuiltIn().log("WRN: Could not found the template") return result
Example #29
Source File: mosse.py From open-vot with MIT License | 5 votes |
def _linear_correlation(self, img): C = cv2.mulSpectrums( cv2.dft(img, flags=cv2.DFT_COMPLEX_OUTPUT), self.H, 0, conjB=True) resp = cv2.idft(C, flags=cv2.DFT_SCALE | cv2.DFT_REAL_OUTPUT) h, w = resp.shape _, mval, _, (mx, my) = cv2.minMaxLoc(resp) side_resp = resp.copy() cv2.rectangle(side_resp, (mx - 5, my - 5), (mx + 5, my + 5), 0, -1) smean, sstd = side_resp.mean(), side_resp.std() psr = (mval - smean) / (sstd + self.cfg.eps) return resp, (mx - w // 2, my - h // 2), psr
Example #30
Source File: wechat_jump.py From wechat_jump_game with Apache License 2.0 | 5 votes |
def search(img): result = cv2.matchTemplate(img, template, cv2.TM_SQDIFF) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) cv2.rectangle( img, (min_loc[0], min_loc[1]), (min_loc[0] + template_size[1], min_loc[1] + template_size[0]), (255, 0, 0), 4) return img, min_loc[0] + template_size[1] / 2, min_loc[1] + template_size[0]