2016-10-22 5 views
0

私は画像処理を学習していますが、cvtColor関数が正しく機能していません。次のエラーが表示されます。opencvのcvtColor関数の失敗

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/imgproc/src/color.cpp, line 3737 
Traceback (most recent call last): 
    File "harriscorner.py", line 6, in <module> 
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
cv2.error: /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cvtColor 

実際に私はハリスコーナー検出方法を試していますが、cvtColor fucionは機能しません。誰の助けもありがとう。 ここに私のコードです。

import cv2 
import numpy as np 

filename = 'chessboard.jpg' 
img = cv2.imread(filename) 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

gray = np.float32(gray) 
dst = cv2.cornerHarris(gray,2,3,0.04) 

#result is dilated for marking the corners, not important 
dst = cv2.dilate(dst,None) 

# Threshold for an optimal value, it may vary depending on the image. 
img[dst>0.01*dst.max()]=[0,0,255] 

cv2.imshow('dst',img) 
if cv2.waitKey(0) & 0xff == 27: 
    cv2.destroyAllWindows() 
+1

がありますか? – beaker

答えて

0

ファイルから読み込んだ後、最初のcvtColorでコードにエラーが表示されるため、imread操作が成功しなかった可能性があります。

filename = 'chessboard.jpg' 
img = cv2.imread(filename) 
cv2.imshow("src",img) 
cv2.waitKey(0)#proceed to remaining code when you press a key 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

をあなたはfilePathには、正しいかどうか確認した後、この関数imshowであなたの画像を見ることができない場合:あなたのイメージが正しく読み込まれるようにすることで

スタート。

0

これを試してみてください: `chessboard.jpg`にどのように多くのチャンネル

filename = './chessboard.jpg' 
関連する問題