1.差分矩阵求和
numpy使用指南[菜鸟教程]http://www.runoob.com/numpy/numpy-tutorial.html
opencv使用指南[官方文档]http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html
实现差分矩阵的算法
差分矩阵求和算法的核心在于差分矩阵,实质为差异矩阵。
计算公式为:差分矩阵=图像A矩阵数据-图像B矩阵数据
首先,计算两个图像的矩阵数据之间差异分析图像的相似性;然后,设置一个阈值进行比较,如果差分矩阵的所有元素之和在阈值以内,则表示这两张图像是相似的,且描述了同一物体。
def showpiclocation(img,findimg):
# 定位图像
w = img.shape[1]
h = img.shape[0]
fw = findimg.shape[1]
fh = findimg.shape[0]
findpt = None
for now_h in range(0,h-fh):
for now_w in range(0, w-fw):
comp_tz = img[now_h:now_h+fh,now_w:now_w+fw,:]-findimg
if np.sum(comp_tz) <1:
findpt = now_w,now_h
print('.',)
if findpt != None:
print('fw is %d' % fw)
cv2.rectangle(img, findpt, (findpt[0]+fw, findpt[1]+fh),(255,0,0))
return img
完整代码如下
#-*- coding:utf-8 -*-
#code:1054263694@qq.com
#Imagelocation.py
import cv2
import numpy as np
print('loading')
def showpiclocation(img,findimg):
# 定位图像
w = img.shape[1]
h = img.shape[0]
fw