python 三维曲面拟合_scipy.optimize.curve_fit 拟合多维曲面问题-程序员宅基地

技术标签: python 三维曲面拟合  

在做模板匹配算法过程中,想要通过拟合高斯曲面的方式实现亚像素精度。初始代码如下

# 创建一个函数模型用来生成数据

def func1(x, a, b, c, d):

r = a * np.exp(-((x[0] - b) ** 2 + (x[1] - d) ** 2) / (2 * c ** 2))

return r

# 生成原始数据

x1 = np.linspace(0, 10, 10).reshape(1, -1)

x2 = np.linspace(0, 10, 10).reshape(1, -1)

x = np.append(x1, x2, axis=0)

X, Y = np.meshgrid(x1, x2)

XX = np.expand_dims(X, 0)

YY = np.expand_dims(Y, 0)

xx = np.append(XX, YY, axis=0)

y = func1(xx, 10, 5, 2, 5)

# 对原始数据增加噪声

yn = y + 0.002 * np.random.normal(size=xx.shape[1])

# 使用curve_fit函数拟合噪声数据

t0 = timeit.default_timer()

popt, pcov = curve_fit(func1, xx, yn)

elapsed = timeit.default_timer() - t0

print('Time: {} s'.format(elapsed))

# popt返回最拟合给定的函数模型func的参数值

print

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39553423/article/details/110906789

智能推荐

ButterKnife:一键生成代码(解决不能生成)_butterknife 快速生成-程序员宅基地

文章浏览阅读5.7k次。然后在r.layout**右击就可以生成了。也解决了,右击布局不能一键生成的问题。_butterknife 快速生成

使用CNN(convolutional neural nets)检测脸部关键点教程(四):学习率,学习势,dropout_cnn预测关键角点-程序员宅基地

文章浏览阅读6.4k次。第七部分 让 学习率 和 学习势 随着时间改变,让模型训练的更快。第八部分,dropout技巧用作正则化,让模型取得更优的泛化能力。_cnn预测关键角点

set去重-程序员宅基地

文章浏览阅读472次。今天我们来学=学习一下set如何实现去重的相关内容。ES6中新增了set数据结构,类似于数组,其构造函数可以接受一个数组作为参数,我们先来看一下代码:<script> let array = [1, 1, 1, 2, 2, 2, 3, 3, 4]; let set = new Set(array); console.log(set);&..._set函数去重

最近插入法和最近邻点法-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏75次。Hamilton回路问题求解本文分别以最近邻点法和最近插入法求解TSP问题中的Hamilton回路问题。用以下例题作为求解案例V1V2V3V4V5V6V101068715V21005201516V36501478V4820140412V57157406V6151681260最近邻点法最近邻点法的主要逻辑是通过寻找离当前顶点最近的顶点来寻找回来,这样的计算方式比较简便_最近插入法

oracle基础积累-使用ROW_NUMBER() OVER函数去重_row_number() over partition by去重-程序员宅基地

文章浏览阅读5.9k次,点赞3次,收藏17次。场景: 去重.环境: Oracle Database 11g; PL/SQL Developer1.去重 思路:ROW_NUMBER() OVER(PARTITION BY 需要去重字段 ORDER BY 选择排序字段 DESC) 为指定的去重字段,标上行号,如果有重复的,选中行号为1的就可以.SELECT * FROM (SELECT..._row_number() over partition by去重

java虚拟机 jvm 出入java栈 栈空间内存分配_java 栈深度大小-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏12次。java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关。线程最基本的执行行为就是函数的调用。每次函数调用其实是通过java栈传递数据的。数据结构中的栈的特性:先进后出,后进先出。FIFO.java内存中的栈跟数据结构中的特性相似也是FIFO.但是只支持进栈和出栈操作。java栈中保存的主要内容是栈帧。每一次函数调用都会有对应的栈帧被压_java 栈深度大小

随便推点

用MATLAB实现求椭球上任意两点的最短弧长_椭球面上两点之间的最短距离-程序员宅基地

文章浏览阅读9.4k次,点赞33次,收藏107次。基于法向矢量导向的求椭球上两点的最短弧长问题分析求椭球上任意两点间的最短弧长用数学来推算解析解的话十分复杂,因此考虑通过使用计算机来近似求解。问题的难点在于怎样让每一步都是处在最优的状态,以及怎样使每一步的方向都尽量处在该点能够选择的最优方向上。求椭球上两点的最短路,很容易想到用传统的最短路算法如迪杰斯特拉算法或弗洛伊德算法求解,但是在椭球将步长离散化后,构造以及运用邻接矩阵十分复杂,在保证..._椭球面上两点之间的最短距离

oracle禁用账户,禁用用户帐户 (Sun Identity Manager 8.1 业务管理员指南)-程序员宅基地

文章浏览阅读1.1k次。禁用用户帐户在禁用用户帐户时,将会更改该帐户,以使用户无法再登录到 Identity Manager 或为其分配的资源帐户。请注意,管理员可以从管理员界面中禁用用户帐户,但无法锁定用户帐户。仅当用户超过了 Identity Manager 帐户策略定义的允许的失败登录尝试次数时,才会将帐户锁定。注 –如果分配的资源没有为帐户禁用提供本机支持,但支持密码更改,则可以将 Identity Manage..._oracle 禁用用户

【Android 自定义 View】-->验证码输入框_android 验证码输入框-程序员宅基地

文章浏览阅读972次,点赞2次,收藏13次。我们在项目中可能会遇到修改用户名及密码的需求,为保证一定的完全性,服务端一般会接入短信验证码的功能。_android 验证码输入框

python3导入selenium2Library不成功或者找不到关键字_robotframework引入selenium2library但是识别不了关键字-程序员宅基地

文章浏览阅读1.3k次。最近从python2切换到python3时,继续使用robotframework框架时遇到一些问题,如下:①导入selenium2library不成功②导入selenium2library成功后,F5查询关键字时找不到open browser等关键字,以前写的关键字也显示黑色,但是可以正常使用,可是对于要新加UI上的脚本时,就没有联想功能了,对用户很不友好根据各种网站查询的解决方案:1.卸载高版本的robotframework,我的是robotframework3.2.1在python目录下运行:_robotframework引入selenium2library但是识别不了关键字

ASP.NET MVC入门视频教程-程序员宅基地

文章浏览阅读622次。  自从09年三月份微软发布了ASP.NET MVC 1.0,已有超过百万的开发人员下载和使用,它的人气逐月递增。今年三月份发布了ASP.NET MVC 2.0,关于其特性、功能和下载这里不废话了。重点是下面的一些ASP.NET教程资源,:  一 ASP.NET MVC 文章推荐   ASP.NET MVC的在线文档:http://go.microsoft.com/fwli..._.mvc视频。教程

Q_D指针(d指针)和Q_Q指针(q指针)简介-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏7次。文章目录1. Q_D指针2. Q_Q指针1. Q_D指针在class中配合使用 Q_DECLARE_PRIVATE 和 Q_D ,方便获取d指针,d指针指向Class##Private;2. Q_Q指针在class##Private配合使用 Q_DECLARE_PUBLIC 和 Q_Q ,方便获取q指针,q指针指向原class本身;Q_DECLARE_PRIVATE 和 Q_DEC..._q_d

推荐文章

热门文章

相关标签