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认同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值