python互相关函数_计算互相关函数?
ncRubert..
14
如果您正在尋找一維或二維的快速,標(biāo)準(zhǔn)化的互相關(guān),我會(huì)推薦openCV庫(kù)(參見(jiàn) http://opencv.org/).由該組維護(hù)的互相關(guān)代碼是您將找到的最快,它將被標(biāo)準(zhǔn)化(結(jié)果在-1和1之間).
雖然這是一個(gè)C++庫(kù),但代碼是使用CMake維護(hù)的,并且具有python綁定,因此可以方便地訪問(wèn)互相關(guān)函數(shù).OpenCV也很適合numpy.如果我想從numpy數(shù)組開(kāi)始計(jì)算二維互相關(guān),我可以按如下方式進(jìn)行.
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)
對(duì)于僅1-D互相關(guān),創(chuàng)建形狀等于(N,1)的2-D陣列.雖然轉(zhuǎn)換為openCV格式需要一些額外的代碼,但scipy的加速速度令人印象深刻.
僅供參考,如果您不想使用OpenCV,也可以使用scikit-image執(zhí)行此操作.參見(jiàn)[本例](http://scikit-image.org/docs/0.9.x/auto_examples/plot_template.html). (2認(rèn)同)
總結(jié)
以上是生活随笔為你收集整理的python互相关函数_计算互相关函数?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电路板布局
- 下一篇: python调用电脑蓝牙_用Python