python互相关函数_计算互相关函数?
ncRubert..
14
如果您正在尋找一維或二維的快速,標準化的互相關,我會推薦openCV庫(參見 http://opencv.org/).由該組維護的互相關代碼是您將找到的最快,它將被標準化(結果在-1和1之間).
雖然這是一個C++庫,但代碼是使用CMake維護的,并且具有python綁定,因此可以方便地訪問互相關函數.OpenCV也很適合numpy.如果我想從numpy數組開始計算二維互相關,我可以按如下方式進行.
import numpy
import cv
#Create a random template and place it in a larger image
templateNp = numpy.random.random( (100,100) )
image = numpy.random.random( (400,400) )
image[:100, :100] = templateNp
#create a numpy array for storing result
resultNp = numpy.zeros( (301, 301) )
#convert from numpy format to openCV format
templateCv = cv.fromarray(numpy.float32(template))
imageCv = cv.fromarray(numpy.float32(image))
resultCv = cv.fromarray(numpy.float32(resultNp))
#perform cross correlation
cv.MatchTemplate(templateCv, imageCv, resultCv, cv.CV_TM_CCORR_NORMED)
#convert result back to numpy array
resultNp = np.asarray(resultCv)
對于僅1-D互相關,創建形狀等于(N,1)的2-D陣列.雖然轉換為openCV格式需要一些額外的代碼,但scipy的加速速度令人印象深刻.
僅供參考,如果您不想使用OpenCV,也可以使用scikit-image執行此操作.參見[本例](http://scikit-image.org/docs/0.9.x/auto_examples/plot_template.html). (2認同)
總結
以上是生活随笔為你收集整理的python互相关函数_计算互相关函数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电路板布局
- 下一篇: JAVA_SpringBoot中涉及的注