2017-01-15 5 views
2

私は私が作ったステッチプログラムを通じてイメージを実行しているし、それが動作OpenCVのPythonのエラー(-215)写真は、時間の50%を発見した

OS X用端子を介して実行されているOpenCVの3.1.0-devの、のpython 2.7.3を使用してすばらしいです。私はそれを作るためにargparseを使うので、フォルダの場所を渡すだけで、フォルダ内のすべての写真がステッチングされます。私は2枚のテスト画像を持っていたし、それは素晴らしい仕事をし、別のフォルダ内や画像の数が異なるいくつかの他の例を作り、働いていたが、私は今、私はこのエラーが出る問題に実行しています:

img1 = cv2.resize(cv2.imread(os.path.join(path,imagesToStitch[0]),1),imageSize) 
cv2.error: /Users/chrisradford/opencv/modules/imgproc/src/imgwarp.cpp:3490: error: (-215) ssize.width > 0 && ssize.height > 0 in function resize. 

ここに私のコードです:

import os 
import cv2 
import argparse 
from StitchingMaster import Stitcher 

#initalize objects 
stitcher = Stitcher() 
ap = argparse.ArgumentParser() 
ap.add_argument("-1", "--first", required=True) 
args = vars(ap.parse_args()) 
#Define variables 
imageSize = (1800,1200)      #size of image to be passed  to stitcher 
showMatches = False       #True if wish to see matches; False otherwise 
keypoints = [] 
descriptors = [] 
resultImageSize = (1200,900)    #Size of final image to be displated and saved 
imagesToStitch = os.listdir(args["first"]) #list of images in folder 
path = os.path.abspath(args["first"])  #Folder path 

#----Base Case[0-1]----# 
if len(imagesToStitch) < 2: 
    print "Not enough images to stitch" 
    quit() 
#----Base Case[2]----# 
else: 
    img1 = cv2.resize(cv2.imread(os.path.join(path,imagesToStitch[0]),1),imageSize) 
    img2 = cv2.resize(cv2.imread(os.path.join(path,imagesToStitch[1]),1),imageSize) 
    #result = stitched image 
    (result,keypoints,descriptors) = stitcher.stitch([img1,img2],showMatches,keypoints,descriptors) 

エラーは、私は両方がその場所で画像を開いて、それをリサイズ別のプログラムを作って、それがうまく働いた右

else: 
    img1 = cv2.resize.... 

後に表示されます。 os.path.abspath()os.listdir()を使用すると、フォルダの命名規則が乱れることはありますか?

大変助かりました。この機能はまた、隠しファイルをピックアップ

os.listdir(args["first"]) 

:さらなる分析の際

+0

分割線と( 'プリントを使用して、すべてのコマンドの結果を確認してください)' - 多分あなたは間違ったパス、間違ったイメージ、間違ったIMAGESIZE、または画像を取得空であり、大きさを持っていない、など – furas

+0

と[ Googleを使用してこのエラーメッセージを検索する](https://www.google.com/search?q=opencv+ssize.width+%3E+0+%26%26+ssize.height+%3E+0+in+function+ &gws_rd = cr、ssl&ei = 5-97WPrcA4vX6QTXzZfICg) – furas

+0

提案をいただきありがとうございます。すでにこれを試していますが、何らかの理由でコード内のどこかに印刷物を置くと、print文がエラーの原因となる行の前にあってもエラーが表示されます。そして、イエス・グーグルは今日、私の一日中行きました。私のために投稿を編集してくれてありがとう。 –

答えて

1

は、私は問題がでたことを確認することができました。私が始めた、そのようなファイル削除単純なループのためのチェッカー作成し解決するために

.DS_Store 

:私はOS X上で実行しておりますので、それはまた、隠しファイルと呼ばを拾った「と。」私のリストから。

多くの行に
関連する問題