小编Ton*_*nyZ的帖子

带有遮罩的灰度图像上的Python openCV matchTemplate

我有一个项目,我想在看起来像这样的图像中找到一堆箭头:ibb.co/dSCAYQ, 带有以下模板:ibb.co/jpRUtQ

我在Python中使用cv2的模板匹配功能。我的算法是将模板旋转360度并为每次旋转匹配。我得到以下结果:ibb.co/kDFB7k

如您所见,除了2个箭头非常接近以外,其他所有箭头都位于模板的黑色区域之外,它的效果很好。

我正在尝试使用遮罩,但是cv2似乎根本没有应用我的遮罩,即,无论遮罩数组具有什么值,匹配都是相同的。已经尝试了两天,但是cv2的有限文档没有帮助。

这是我的代码:

import numpy as np
import cv2
import os
from scipy import misc, ndimage

STRIPPED_DIR = #Image dir
TMPL_DIR = #Template dir
MATCH_THRESH = 0.9
MATCH_RES = 1  #specifies degree-interval at which to match

def make_templates():
    base = misc.imread(os.path.join(TMPL_DIR,'base.jpg')) # The templ that I rotate to make 360 templates
    for deg in range(360):
        print('making template: ' + str(deg))
        tmpl = ndimage.rotate(base, deg)
        misc.imsave(os.path.join(TMPL_DIR, 'tmp' + str(deg) + '.jpg'), tmpl)

def make_masks():
    for …
Run Code Online (Sandbox Code Playgroud)

python opencv opencv3.0

5
推荐指数
1
解决办法
2198
查看次数

求解 a^3 + b^4 = c^3 + d^3 最佳运行时间

注意:这个问题与Write all solutions for a^3 + b^3 = c^3 + d^3 不同,因为我需要帮助理解算法的运行时间,而不是算法是什么。

在 Cracking the Coding Interview,第 6 版,pg。69,有下面的例子:

打印方程 a^3 + b^3 = c^3 + d^3 的所有正整数解,其中 a、b、c、d 是 0 到 1000 之间的整数。

这是给定的最佳解决方案:

1 n = 1000
2 for c from 1 to n:
3     for d from 1 to n:
4        result = c^3 + d^3
5        append(c, d) to list at value map[result]
6 for each result, list in map:
7    for each pair1 …
Run Code Online (Sandbox Code Playgroud)

algorithm complexity-theory time-complexity

5
推荐指数
1
解决办法
978
查看次数