2017-08-13 17 views
1

私は単にPythonでopencvを使ってBGRからRGBに画像を変換しようとしています。opencv python:matデータ型= 17はサポートされていません

line 62, in getRep\n rgbImg = cv2.cvtColor(imgFrame, 

cv2.COLOR_BGR2RGB)\nTypeError: src data type = 17 is not supported\n 
私は画像を見

が引数として渡されると、私は予想通り、それはBGRであり、まだそれは動作しません:

def getRep(self, imgFrame, multiple=False): 
    bgrImg = imgFrame.copy() 
    cv2.imshow('debug', imgFrame) #this line does show a BGR image 
    cv2.waitKey(0) 
    rgbImg = cv2.cvtColor(imgFrame, cv2.COLOR_BGR2RGB) 


def recognize(self, imgFramePath): 
    imgFrame= cv2.imread(imgFramePath) 
    imgFrame = np.array(imgFrame) 
    reps = self.getRep(imgFrame, False) 

そうするとき は、しかし、私は、このエラーメッセージが表示されますそれらはすべて解釈される行であり、私が直面している問題に関連する唯一の行です。誰かが私が間違ってやっていることを知っていますか?

おかげ

+0

問題を再現できません。 imgFrame.dtypeの出力を追加できますか? – Solvalou

答えて

0

あなたの画像CV_8S画像(8ビット符号付き整数)です。 This siteは数値データ型から実際の型への変換を示し、型17は8ビット符号付きintに対応します。これは問題です。cvtColor()は、入力に8ビット符号付きintイメージを受け入れないためです。 8ビットの符号なし16ビット(CV_16UC...)符号なし、または単精度浮動小数点: - 入力画像

SRCcvtColor()上のドキュメントから。

だからあなたの入力画像は、使用している色変換のためのチャネルの適切な数と種類CV_8Unumpy.uint8)またはCV_16Unumpy.uint16)またはCV_32Fnumpy.float32)であることが必要です。

関連する問題