簡體   English   中英

我的python opencv綁定中似乎缺少Stitcher API

[英]Stitcher API seems to be missing from my python opencv bindings

由於某種原因,我的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])

導致此錯誤:

AttributeError: 'module' object has no attribute 'createStitcher'

在python解釋器中運行help(cv2)也會顯示該功能根本不存在。

我想您最近升級了Cv2版本(在此相同)。 為了安全起見,請先點點卸載所有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])

可能是因為您使用的是OpenCV 4。

如果您使用的OpenCV 4,你應該使用cv2.Stitcher_create()cv2.Stitcher.create()應該工作)。

如果您使用的是OpenCV 3,則應像以前一樣使用cv2.createStitcher()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM