小编jsh*_*erd的帖子

Opencv cv2.absdiff(img1,img2).sum()没有临时img

有没有临时img可以计算cv2.absdiff(img1,img2).sum()?

我有一个视频流,我需要在处理开始时进行某种图像稳定.absdiff在检查具有两个跟随图像的不同放置向量时给出了快速且依赖于错误的结果,但是我必须创建,写入和读取临时图像,其中一个仅用于计算img.sum().因此,可以消除这些内存分配,写入和读取步骤.

def calcMatch(img1, img2):
    diff = cv2.absdiff(img1, img2)
    return diff.sum()
Run Code Online (Sandbox Code Playgroud)

python中的解决方案

import cv2
import time

img = cv2.imread('test.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img1 = img[10:330, 10:870]
img2 = img[20:340, 20:880]

start = time.clock()
d = cv2.absdiff(img1, img2)
s = d.sum()
t = time.clock() - start
print 'with absdiff ', t
print s

start = time.clock()
s = cv2.norm(img1, img2, cv2.NORM_L1)
t = time.clock() - start
print 'with norm L1 ',  t
print s
Run Code Online (Sandbox Code Playgroud)

与我的笔记本电脑相比,它具有非常稳定的比率:
absdiff 0.00207574457822
4315120
,标准L1 0.000226647018223 …

python opencv vision

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

opencv ×1

python ×1

vision ×1