gpt4 book ai didi

python - Python 中 opencv2 ORB 数据结构的深拷贝

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:39 25 4
gpt4 key购买 nike

我想使用图像中先前检测到的 ORB 特征 位置 来提取其他图像中的 ORB 描述符,使用较早确定的位置,从而绕过检测器。

我似乎无法获取检测到的特征的深拷贝进行处理,然后传回以生成新的描述符。

  1. 使用原始未修改的f1 关键点为im_y 图像生成描述符
  2. 运行检测器两次以确定重复项显然有效,但有点 hack,我想对原始特征点进行一些处理。
  3. 我在 OS X 10.8.5 上通过 macports 运行 Python 2.7.6、Opencv 2.4.8

代码:

from matplotlib import pyplot as plt
import copy as cp
import cv2

im_x = cv2.imread('stinkbug1.png', 0)
im_y = cv2.imread('stinkbug2.png', 0)

orb = cv2.ORB()

# Keypoint detection in first image
f1 = orb.detect(im_x, None)
f1, d1 = orb.compute(im_x, f1)

# Make a copy of the orginal key points
f2 = cp.deepcopy(f1)

# Magic processing here

# Get descriptors from second y image using the detected points from the x image
f2, d2 = orb.compute(im_y, f2)

# f2 and d2 are now an empty list and a <NoneType>

最佳答案

显然,deepcopy 不适用于 KeyPoint。由于特征 f1 只是一个关键点列表,您可以手动复制关键点列表:

def features_deepcopy (f):
return [cv2.KeyPoint(x = k.pt[0], y = k.pt[1],
_size = k.size, _angle = k.angle,
_response = k.response, _octave = k.octave,
_class_id = k.class_id) for k in f]

f2 = features_deepcopy(f1)

我希望这会有所帮助;-)

克里斯托夫

关于python - Python 中 opencv2 ORB 数据结构的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com