解释cv2方法的结果:相位相关?|python打开

2024-06-02 08:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个简单的脚本,返回两个图像之间的相位相关性。为此,我调用cv2方法:cv2.phaseCorrelate

我知道它返回两个图像之间的亚像素相移,但是,我不清楚返回对象的每个组件的具体细节(方法返回一个包含元组和浮点数的列表)。你知道吗

非常感谢您的帮助,谢谢。你知道吗


import cv2
import math
import time
import numpy as np

class CorrelationCalculator(object):
    'TODO: class description'

    version = '0.1'

    def __init__(self, initial_frame, detection_threshold=4):
        self.initial_frame = np.float32(cv2.cvtColor(initial_frame, cv2.COLOR_BGR2GRAY))
        self.detection_threshold = detection_threshold

    def detect_phase_shift(self, current_frame):    
        'returns detected sub-pixel phase shift between two arrays'
        self.current_frame = np.float32(cv2.cvtColor(current_frame, cv2.COLOR_BGR2GRAY))
        shift = cv2.phaseCorrelate(self.initial_frame, self.current_frame)
        return shift

# implementation

import cv2

img = cv2.imread('img1.jpg')
img2 = cv2.imread('img2.jpg')

obj = CorrelationCalculator(img)
shift = obj.detect_phase_shift(img2)

print(str(shift)

输出:

(4.3597901057868285,-2.8767423065464186),0.4815432178477446)


Tags: 方法图像importselfthresholdshiftnpcurrent
1条回答
网友
1楼 · 发布于 2024-06-02 08:37:24

返回的第一个元组告诉您在x和y坐标中imgimg2之间的移位量。例如,考虑下面的两个图像。你知道吗

Source ImageTarget Image

这种方法应该是在像素值中找到矩形的偏移。其他值显示了我们从相位相关过程中得到的响应值。你可以把它看作是计算确定性的一个衡量标准。您可以在phaseCorrelate标题下找到有关OpenCv documentation的详细信息。你知道吗

相关问题 更多 >