亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找數字數組曲線的折點

查找數字數組曲線的折點

一只甜甜圈 2022-08-25 14:14:56
我有一個圖像,我沿著圖像對角線提取一條輪廓線,輪廓在對角線的2側集成了幾條線,所以我得到了一條平滑的輪廓線,現在我想找出曲線上表示圖像線輪廓的拐點。我嘗試過這種方法,但它給了我很多點,而且位置不是我想要的。import numpy as np import matplotlib.pyplot as plt arr = profiles[:,0].astype("int16") d = np.diff(arr) dd = np.diff(d) plt.figure(figsize=(20,15)) plt.plot(np.arange(2047), d) plt.plot(np.arange(2046), dd) plt.plot(arr)for i in range(2046):     if (d[i] != 0) and (d[i] == dd[i]):         plt.plot(i, arr[i], 'o')您知道如何檢索曲線上拐點的坐標嗎?
查看完整描述

2 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

,您不是在尋找拐點。無論如何,這里有一個代碼使用第一個和第二個派生,但在它有一個平滑的via savgol_filter(來自scipy)之前。我認為這是您問題的最佳近似值。

from scipy import signal
smooth = signal.savgol_filter(arr, 55,3)
dxdy =  signal.savgol_filter(np.gradient(smooth),55,3)
dx2dy2 = signal.savgol_filter(np.gradient(dxdy),55,3)
plt.subplot(121)
plt.plot(smooth,'k')
plt.plot(np.where(dx2dy2==dx2dy2.min()),smooth[np.where(dx2dy2==dx2dy2.min())],'ro')
plt.subplot(122)
plt.plot(dxdy,'r',label='first derivate')
plt.plot(dx2dy2,'b',label='second derivate')
plt.legend()

http://img1.sycdn.imooc.com//630713b50001030615440802.jpg

查看完整回答
反對 回復 2022-08-25
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

我想如果你能找到一種方法來平滑曲線,你就會得到你想要的東西。


查看完整回答
反對 回復 2022-08-25
  • 2 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號