成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python橢圓擬合函數(shù) python 橢圓擬合

python擬合圓如何設(shè)置擬合精度

OpenCV曲線(xiàn)擬合與圓擬合

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、青秀網(wǎng)站維護(hù)、網(wǎng)站推廣。

使用OpenCV做圖像處理與分析的時(shí)候,經(jīng)常會(huì)遇到需要進(jìn)行曲線(xiàn)擬合與圓擬合的場(chǎng)景,很多OpenCV開(kāi)發(fā)者對(duì)此卻是一籌莫展,其實(shí)OpenCV中是有現(xiàn)成的函數(shù)來(lái)實(shí)現(xiàn)圓擬合與直線(xiàn)擬合的,而且還會(huì)告訴你擬合的圓的半徑是多少,簡(jiǎn)直是超級(jí)方便,另外一個(gè)常用到的場(chǎng)景就是曲線(xiàn)擬合,常見(jiàn)的是基于多項(xiàng)式擬合,可以根據(jù)設(shè)定的多項(xiàng)式冪次生成多項(xiàng)式方程,然后根據(jù)方程進(jìn)行一系列的點(diǎn)生成,形成完整的曲線(xiàn),這個(gè)車(chē)道線(xiàn)檢測(cè),輪廓曲線(xiàn)擬合等場(chǎng)景下特別有用。下面就通過(guò)兩個(gè)簡(jiǎn)單的例子來(lái)分別學(xué)習(xí)一下曲線(xiàn)擬合與圓擬合的應(yīng)用。

一:曲線(xiàn)擬合與應(yīng)用

基于Numpy包的polyfit函數(shù)實(shí)現(xiàn),其支持的三個(gè)參數(shù)分別是x點(diǎn)集合、y點(diǎn)集合,以及多項(xiàng)式的冪次。得到多項(xiàng)式方程以后,就可以完整擬合曲線(xiàn),圖中有如下四個(gè)點(diǎn):

?

調(diào)用polyfit生成的二階多項(xiàng)式如下:

?

擬合結(jié)果如下:

?

使用三階多項(xiàng)式擬合,調(diào)用polyfit生成的多項(xiàng)式方程如下:

?

生成的擬合曲線(xiàn)如下:

?

使用polyfit進(jìn)行曲線(xiàn)擬合時(shí)候需要注意的是,多項(xiàng)式的冪次最大是數(shù)據(jù)點(diǎn)數(shù)目N - 1冪次多項(xiàng)式,比如有4個(gè)點(diǎn),最多生成3階多項(xiàng)式擬合。上述演示的完整代碼實(shí)現(xiàn)如下:

def circle_fitness_demo():

image = np.zeros((400, 400, 3), dtype=np.uint8)

x = np.array([30, 50, 100, 120])

y = np.array([100, 150, 240, 200])

for i in range(len(x)):

cv.circle(image, (x[i], y[i]), 3, (255, 0, 0), -1, 8, 0)

cv.imwrite("D:/curve.png", image)

poly = np.poly1d(np.polyfit(x, y, 3))

print(poly)

for t in range(30, 250, 1):

y_ = np.int(poly(t))

cv.circle(image, (t, y_), 1, (0, 0, 255), 1, 8, 0)

cv.imshow("fit curve", image)

cv.imwrite("D:/fitcurve.png", image)

二:圓擬合與應(yīng)用

圓的擬合是基于輪廓發(fā)現(xiàn)的結(jié)果,對(duì)發(fā)現(xiàn)的近似圓的輪廓,通過(guò)圓擬合可以得到比較好的顯示效果,輪廓發(fā)現(xiàn)與擬合的API分別為findContours與fitEllipse,

有圖像如下:

?

使用輪廓發(fā)現(xiàn)與圓擬合處理結(jié)果如下:

?

紅色表示擬合的圓,藍(lán)色是圓的中心位置

上述完整的演示代碼如下:

def circle_fitness_demo():

src = cv.imread("D:/javaopencv/c2.png")

cv.imshow("input", src)

src = cv.GaussianBlur(src, (3, 3), 0)

gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)

ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)

cv.imshow("binary", binary)

image, contours, hierachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

for i in range(len(contours)):

rrt = cv.fitEllipse(contours[i])

cv.ellipse(src, rrt, (0, 0, 255), 2, cv.LINE_AA)

x, y = rrt[0]

cv.circle(src, (np.int(x), np.int(y)), 4, (255, 0, 0), -1, 8, 0)

cv.imshow("fit circle", src)

cv.imwrite("D:/fitcircle.png", src)

吾心信其可行,則移山填海之難,終有成功之日;

吾心信其不可行,則反掌折枝之易,亦無(wú)收效之期也

python polyfit函數(shù)怎么使用

用polyfit(X,Y,1)得到的擬合函數(shù)只能得到a,b,但不能得到線(xiàn)性相關(guān)系數(shù)R^2。如想要得到其線(xiàn)性相關(guān)系數(shù),可以用regress(y,X),其使用格式

[b,bint,r,rint,stats]

=

regress(y,X);

b——擬合系數(shù)

bint——b的置信區(qū)間

r——?dú)埐钪?/p>

rint——r的置信區(qū)間

stats——檢驗(yàn)統(tǒng)計(jì)量,第一個(gè)就是相關(guān)系數(shù)

例如:

x=[。。。];y=[。。。]

X=[x

ones(n,1)];

%x的行數(shù)(列數(shù))

[b,bint,r,rint,stats]

=

regress(y,X);

怎么用Python將圖像邊界用最小二乘法擬合成曲線(xiàn)

本文實(shí)例講述了Python基于最小二乘法實(shí)現(xiàn)曲線(xiàn)擬合。分享給大家供大家參考,具體如下:

這里不手動(dòng)實(shí)現(xiàn)最小二乘,調(diào)用scipy庫(kù)中實(shí)現(xiàn)好的相關(guān)優(yōu)化函數(shù)。

考慮如下的含有4個(gè)參數(shù)的函數(shù)式:

構(gòu)造數(shù)據(jù)

?

123456789101112131415

import numpy as npfrom scipy import optimizeimport matplotlib.pyplot as pltdef logistic4(x, A, B, C, D):??return (A-D)/(1+(x/C)**B)+Ddef residuals(p, y, x):??A, B, C, D = p??return y - logisctic4(x, A, B, C, D)def peval(x, p):??A, B, C, D = p??return logistic4(x, A, B, C, D)A, B, C, D = .5, 2.5, 8, 7.3x = np.linspace(0, 20, 20)y_true = logistic4(x, A, B, C, D)y_meas = y_true + 0.2 * np.random.randn(len(y_true))

調(diào)用工具箱函數(shù),進(jìn)行優(yōu)化

?

1234

p0 = [1/2]*4plesq = optimize.leastsq(residuals, p0, args=(y_meas, x))????????????# leastsq函數(shù)的功能其實(shí)是根據(jù)誤差(y_meas-y_true)????????????# 估計(jì)模型(也即函數(shù))的參數(shù)

繪圖

?

12345678

plt.figure(figsize=(6, 4.5))plt.plot(x, peval(x, plesq[0]), x, y_meas, 'o', x, y_true)plt.legend(['Fit', 'Noisy', 'True'], loc='upper left')plt.title('least square for the noisy data (measurements)')for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])):??plt.text(11, 2-i*.5, '{} = {:.2f}, est({:.2f}) = {:.2f}'.format(param, true, param, est))plt.savefig('./logisitic.png')plt.show()

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

python中用polyfit擬合出的函數(shù)怎么能直接調(diào)用?

首先分兩種情況:

1.交互窗口處執(zhí)行:這個(gè)時(shí)候由于python的強(qiáng)制縮進(jìn),因此想要結(jié)束函數(shù)的定義只需要按兩下enter即可。

2.在.py文件中編寫(xiě),結(jié)束函數(shù)只需要不再縮進(jìn)即可

調(diào)用函數(shù)方法相同,把函數(shù)名及參數(shù)寫(xiě)上就可以了,如果有返回值可以

r=functionA(var1)

附:測(cè)試代碼(python3運(yùn)行通過(guò))

# -*- coding:utf-8 -*-

#author:zfxcx

def pt():

print("hello")

pt()

python擬合指數(shù)函數(shù)初始值如何設(shè)定

求擬合函數(shù),首先要有因變量和自變量的一組測(cè)試或?qū)嶒?yàn)數(shù)據(jù),根據(jù)已知的曲線(xiàn)y=f(x),擬合出Ex和En系數(shù)。當(dāng)用擬合出的函數(shù)與實(shí)驗(yàn)數(shù)據(jù)吻合程度愈高,說(shuō)明擬合得到的Ex和En系數(shù)是合理的。吻合程度用相關(guān)系數(shù)來(lái)衡量,即R^2。首先,我們需要打開(kāi)Python的shell工具,在shell當(dāng)中新建一個(gè)對(duì)象member,對(duì)member進(jìn)行賦值。 2、這里我們所創(chuàng)建的列表當(dāng)中的元素均屬于字符串類(lèi)型,同時(shí)我們也可以在列表當(dāng)中創(chuàng)建數(shù)字以及混合類(lèi)型的元素。 3、先來(lái)使用append函數(shù)對(duì)已經(jīng)創(chuàng)建的列表添加元素,具體如下圖所示,會(huì)自動(dòng)在列表的最后的位置添加一個(gè)元素。 4、再來(lái)使用extend對(duì)來(lái)添加列表元素,如果是添加多個(gè)元素,需要使用列表的形式。 5、使用insert函數(shù)添加列表元素,insert中有兩個(gè)參數(shù),第一個(gè)參數(shù)即為插入的位置,第二個(gè)參數(shù)即為插入的元素。origin擬合中參數(shù)值是程序擬合的結(jié)果,自定義函數(shù)可以設(shè)置參數(shù)的初值,也可以不設(shè)定參數(shù)的初值。

一般而言,擬合結(jié)果不會(huì)因?yàn)槌踔档牟煌刑蟮钠?,如果偏差很大,說(shuō)明數(shù)據(jù)和函數(shù)不太匹配,需要對(duì)函數(shù)進(jìn)行改正。X0的迭代初始值選擇與求解方程,有著密切的關(guān)系。不同的初始值得出的系數(shù)是完全不一樣的。這要通過(guò)多次選擇和比較,才能得到較為合理的初值。一般的方法,可以通過(guò)隨機(jī)數(shù)并根據(jù)方程的特性來(lái)初選。

Python 中的函數(shù)擬合

很多業(yè)務(wù)場(chǎng)景中,我們希望通過(guò)一個(gè)特定的函數(shù)來(lái)擬合業(yè)務(wù)數(shù)據(jù),以此來(lái)預(yù)測(cè)未來(lái)數(shù)據(jù)的變化趨勢(shì)。(比如用戶(hù)的留存變化、付費(fèi)變化等)

本文主要介紹在 Python 中常用的兩種曲線(xiàn)擬合方法:多項(xiàng)式擬合 和 自定義函數(shù)擬合。

通過(guò)多項(xiàng)式擬合,我們只需要指定想要擬合的多項(xiàng)式的最高項(xiàng)次是多少即可。

運(yùn)行結(jié)果:

對(duì)于自定義函數(shù)擬合,不僅可以用于直線(xiàn)、二次曲線(xiàn)、三次曲線(xiàn)的擬合,它可以適用于任意形式的曲線(xiàn)的擬合,只要定義好合適的曲線(xiàn)方程即可。

運(yùn)行結(jié)果:

名稱(chēng)欄目:python橢圓擬合函數(shù) python 橢圓擬合
轉(zhuǎn)載注明:http://jinyejixie.com/article44/doscphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、軟件開(kāi)發(fā)、虛擬主機(jī)、動(dòng)態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
千阳县| 即墨市| 德格县| 即墨市| 贵州省| 中山市| 瓮安县| 清丰县| 金秀| 滦南县| 迭部县| 大姚县| 鹤壁市| 汉川市| 涟水县| 仁怀市| 宁河县| 泗水县| 彰武县| 襄城县| 三亚市| 体育| 宿州市| 仁布县| 竹北市| 合肥市| 仙居县| 罗山县| 伊川县| 五指山市| 阜新市| 康保县| 泰顺县| 佳木斯市| 尤溪县| 嘉定区| 公主岭市| 太原市| 无极县| 伊通| 谢通门县|