我的python opencv绑定中似乎缺少缝合器API

2024-04-19 13:35:29 发布

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

由于某些原因,我的opencv python绑定中似乎缺少缝合器绑定。例如,此代码:

import cv2
stitcher = cv2.createStitcher(False)
foo = cv2.imread("foo.png")
bar = cv2.imread("bar.png")
result = stitcher.stitch((foo,bar))

cv2.imwrite("result.jpg", result[1])

导致此错误:

^{pr2}$

在python解释器中运行help(cv2)也会显示函数根本不存在。在


Tags: 代码importfalsefoopngbar原因result
2条回答

我猜你最近升级了你的Cv2版本(这里也一样)。为了安全起见,继续进行pip卸载所有Cv2的东西,然后重新安装最新版本。看看Stitcher的Cv2源代码,你会发现你需要使用一个新的语法来创建一个实例。以下代码将缝合目录中的图像:

import cv2
import os
import re

def tryint(s):
    try:
        return int(s)
    except:
        return s

def alphanum_key(s):
    return [tryint(c) for c in re.split('([0-9]+)', s)]

def sort_nicely(l):
    l.sort(key=alphanum_key)
    return l


directory = "Image/Directory"
fileNameKeys = ['File','Names','Contain','These','Strings']


dirList = sort_nicely([file for file in os.listdir(directory) if all(substring in file for substring in fileNameKeys)])
images = [cv2.imread(directory + '/' + imageFile) for imageFile in dirList if True]
print(dirList)


#################################
stitcher = cv2.Stitcher.create()
#################################


stitchOut = stitcher.stitch(images)
print("Stitcher exit status = " + str(stitchOut[0]))
print("Hit any Key to continue and save image")
cv2.imshow('Stitched Image', stitchOut[1])
cv2.waitKey(0)
cv2.imwrite(directory + "/" + "STITCH.png", stitchOut[1])

这可能是因为您使用的是opencv4。在

如果您使用的是opencv4,那么应该使用cv2.Stitcher_create()(也可以使用cv2.Stitcher.create())。在

{你应该使用OpenCV。在

相关问题 更多 >