[英]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.