- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下带有眼睛和噪声点的图像。图片中的人倾斜度很小,我想将其归一化。我用 dlib 标记了地标,所以我可以计算倾斜度。
LEFT_EYE: [(274, 269), (286, 259), (302, 258), (317, 268), (302, 271), (286, 272)]
RIGHT_EYE : [(388, 264), (401, 254), (417, 252), (431, 261), (419, 265), (403, 265)]
NOSE: [(352, 257), (353, 278), (354, 297), (354, 319)]
作为一个想法,x 轴上的鼻尖点是 352、353、354、354。理论上,如果我进行矩阵变换,将所有 x 点更改为 352,噪声将呈直线。
我觉得可以用矩阵变换来完成,噪声或者眼点作为向量变换。但我需要一种方法,如何解决这个问题。
最佳答案
首先,对 Nose 点进行线性拟合,并使用斜率找到角度。为此,请切换 x 值和 y 值,使垂直向上的角度为 0 度(同时,当 Nose 几乎垂直开始时,您会获得更好的贴合度)。
# Nose points
nose = np.array([(352, 257), (353, 278), (354, 297), (354, 319)])
# Linear fit with x- and y-values switched
m,b = np.polyfit(nose[:,1], nose[:,0], 1)
# Angle in radians
angle = np.arctan(m)
接下来可以用opencv来get a rotation matrix .如果旋转中心无关紧要,您可以围绕图像的中心旋转。但在下方,我将它围绕 Nose 顶部旋转,这样如果您确实需要,这些点将沿着 x=352 线垂直放置。最后,使用旋转矩阵将图像旋转为cv2.warpAffine
.
# Get rotation matrix
rot_mat = cv2.getRotationMatrix2D(tuple(nose[0]), -angle*180./np.pi, 1)
# Rotate image
dims = tuple(img.shape[:2][::-1])
rotated_image = cv2.warpAffine(img, rot_mat, dims)
这是生成的图像:
关于python - 使用opencv在 Nose 和眼睛轴上旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53506404/
我在Trac / Bitten构建环境中的每个 checkin 中都有一些Selenium Webdriver GUI测试。由于种种愚蠢的原因,这些都是脆弱的,并且重新运行失败的测试总是可以的(除非它
我遇到了这个问题,这让我抓狂! 所以我正在开发我的第一个真正的 Google App Engine 应用程序,我总是喜欢在编写测试时发现新事物。 所以我有以下设置: 我有一个带有 nose、noseg
定义一个 Nose 测试方法test_circlearea_with_min_radius,它创建一个半径为0的圆c2并检查其计算面积是否与值0匹配 我已经编写了下面提到的代码,但仍然没有得到所需的输
它在文档中提到 ( http://nose.readthedocs.org/en/latest/api/core.html ) 但似乎没有任何示例,并且尝试它似乎在 cwd 中运行所有测试。 最佳答案
我正在尝试测试我的 django 项目,我有一个具有非常经典布局的应用程序,如下所示: project ├── __init__.py └── app ├── __init__.py
我正在编写一组测试用例,比如测试模块中的 Test1、Test2。 有没有办法使用命令 nose.main() 在该模块中跳过 Test1 或选择性地仅执行 Test2? 我的模块包含, 测试模块.p
我正在尝试实现一种完整而干净的测试 python 包的方法,一种适合以下要求的方法: 在干净的机器上执行测试而不设置它们 (virtualenv) 从 收集结果多平台 从 收集结果多个python解释
我刚刚开始进行测试开发,而且我正在努力理解要测试的内容。那里有很多 foobar 示例,但我很难知道如何测试我的项目单元。例如,使用这个简单地将文本文件的行作为列表返回的函数: def getLine
似乎是一个愚蠢的问题,但我一直无法弄清楚...... 我想使用 eclipse/pyunit 来运行我所有的测试。我已将测试运行器配置为 Nose 测试运行器。 现在我想让 pyunit 使用 Nos
是否有类似于 Nose 的 spec 的 py.test 插件(也是 pinocchio 的一部分)。我想看到测试运行器输出如下所示: Foobaz - behaves such and such
我已经安装了 django-nose 1.0 作为 Django 1.3.1 项目的测试运行器。我正在按照说明操作 on the pypi page关于仅测试模型。 这是我的 settings.py
如何为所有 Nose 测试用例创建一个仅在初始化期间调用一次的设置函数?我有一个只需要设置一次的全局配置,我觉得向每个模块添加以下内容(甚至为每个模块调用设置函数)有点多余: def setUp(se
我将 nose、django-nose、nose-exclude、coverage 添加到我的 buildout.cfg 中,并且跑了扩建。此外,我将 TEST_RUNNER 和 NOSE_ARGS
我正在为一个函数编写一个测试,该函数使用 Twisted 从 url 下载数据(我知道twisted.web.client.getPage,但是这个函数添加了一些额外的功能)。不管怎样,我想使用nos
我正在尝试使用nosetests 运行目录中的所有pyunit 测试。问题是我在这个目录中有 4 个测试,而 notests 只运行其中之一。如果我单独运行其他三个测试,例如: nosetests -
我有动态量的测试,所以我想使用 for 循环我会尝试这样的事情: from nose.tools import istest, nottest from nose.tools import eq_ i
我刚刚向我的一个 Python 模块添加了一个单元测试,但 nose 拒绝接收。测试看起来像这样: class TestMargin(unittest.TestCase): def setUp
当我运行 nosetests 时出现奇怪的错误: ====================================================================== ERRO
想象一下您有一个 BASE_CLASS 的情况。几个类继承自该类:CHILD_A、CHILD_B、CHILD_C。 现在让我们编写单元测试,但仅限于 CHILD_A、CHILD_B、CHILD_C。我
有没有办法在不运行它们的情况下获取 nose 当前识别的所有测试的列表? 根据文档--collect-only 启用collect-only:只收集和输出测试名称,不运行任何测试。 [COLLECT_
我是一名优秀的程序员,十分优秀!