- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从视频中获得了这些数据。
由于图像变形,我的“矩形”不规则。我想转换数据,以便将它们在 matplotlib 中绘制为矩形。
有简单的方法吗?
这是maze and trancking 。我把它分解成五个四边形
最佳答案
您可以使用skimage.transform.ProjectiveTransform
来自 scikit-image
将四边形内的坐标转换为局部正方形空间 [0, 1] × [0, 1]。
有关如何应用线性代数解决此问题的更多信息,请参阅 ProjectiveTransform.estimate
或“Projective Mappings for Image Warping”,作者:Paul Heckbert,1999 年。
假设您的四边形的角按顺时针顺序排列:
bottom_left = [58.6539, 31.512]
top_left = [27.8129, 127.462]
top_right = [158.03, 248.769]
bottom_right = [216.971, 84.2843]
我们实例化一个ProjectiveTransform
并要求它找到四边形内到单位正方形的投影变换映射点:
from skimage.transform import ProjectiveTransform
t = ProjectiveTransform()
src = np.asarray(
[bottom_left, top_left, top_right, bottom_right])
dst = np.asarray([[0, 0], [0, 1], [1, 1], [1, 0]])
if not t.estimate(src, dst): raise Exception("estimate failed")
现在,转换t
已准备好将您的点转换为单位正方形。当然,通过更改上面的 dst
,您可以缩放到与单位正方形不同的矩形(甚至完全不同的四边形)。
data = np.asarray([
[69.1216, 51.7061], [72.7985, 73.2601], [75.9628, 91.8095],
[79.7145, 113.802], [83.239, 134.463], [86.6833, 154.654],
[88.1241, 163.1], [97.4201, 139.948], [107.048, 115.969],
[115.441, 95.0656], [124.448, 72.6333], [129.132, 98.6293],
[133.294, 121.731], [139.306, 155.095], [143.784, 179.948],
[147.458, 200.341], [149.872, 213.737], [151.862, 224.782],
])
data_local = t(data)
我们绘制输入数据和转换后的数据以查看转换的工作情况:
import matplotlib.pyplot as plt
plt.figure()
plt.plot(src[[0,1,2,3,0], 0], src[[0,1,2,3,0], 1], '-')
plt.plot(data.T[0], data.T[1], 'o')
plt.figure()
plt.plot(dst.T[0], dst.T[1], '-')
plt.plot(data_local.T[0], data_local.T[1], 'o')
plt.show()
关于python - 在python matplotlib中将不规则四边形转换为矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33283088/
negExpression : (NOT^)* primitiveElement ; 是我的规矩。我现在有这个代码: !!(1==1) 我希望我最终会得到这棵树: NOT | NOT
我遇到以下问题,我正在创建一个作为预算副本的表单,但这种类型的预算不包含增值税%,并且商品不会通过会计。 问题如下我创建了一个名为budget.table的模型如下: class TableEleme
我对 Java 相当陌生,但对一般编程不太熟悉。我在 Windows Vista 上使用 Java 1.7.0_07。我正在尝试弄清楚如何使 Swing Timer 定期计时。 我注意到,即使我设置了
我有一个静态站点,它突然显示不规则的标题。这是一个包含大量 JavaScript 的单一页面,包括页面顶部的表格选择。该网站六个月前运行良好。现在,我在 12 个不同的导航选项卡中的一半上看到无法解释
在我参加的 CS 类(class)中,有一个不规则语言的例子: {a^nb^n | n >= 0} 我可以理解它是不规则的,因为没有有限状态自动机/机器可以编写来验证和接受此输入,因为它缺少内存组件。
给定以下高频但稀疏的时间序列: #Sparse Timeseries dti1 = pd.date_range(start=datetime(2015,8,1,9,0,0),periods=10,fr
我有 X、Y、Z 格式的数据,其中所有数据都是一维数组,Z 是坐标 (X,Y) 处的测量幅度。我想将此数据显示为等高线或“imshow”图,其中等高线/颜色代表 Z 值(幅度)。 用于测量和 X 和
这是 Stackoverflow 上的一个递归问题,但给出的解决方案 here仍然不完美。对我来说,屈服仍然是 python 中最复杂的东西之一,所以我不知道如何自己修复它。 当给定函数的任何列表中的
我使用 PHP 5.3.3 在 RHEL 6 服务器上部署了一个 symfony 1.4 项目。我不定期地在 php 错误日志中收到条目,提示找不到 sfProjectConfiguration 并且
我是一名优秀的程序员,十分优秀!