open cv error: (-215) scn == 3 || scn == 4 in function cvtColor

I'm currently in Ubuntu 14.04, using python 2.7 and cv2.

When I run this code:

    import numpy as np
    import cv2

    img = cv2.imread('2015-05-27-191152.jpg',0)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

it returns:

     File "face_detection.py", line 11, in <module>
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/imgproc/src/color.cpp:7564: error: (-215) scn == 3 || scn == 4 in function cvtColor

I already searched here and one answer said that I could be loading my photo the wrong way, because it should have 3 dimensions: rows, columns and depth.

When I print the img.shape it returns only two numbers, so I must be doing it wrong. But I don't know the right way to load my photo.

Give the full path of image with forward slash. It solved the error for me.

E.g.

    import numpy as np
    import cv2

    img = cv2.imread('C:/Python34/images/2015-05-27-191152.jpg')
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

Also, if you give 0 in second parameter while loading image using cv2.imread than no need to convert image using cvtColor, it is already loaded as grayscale image eg.

    import numpy as np
    import cv2

    gray = cv2.imread('C:/Python34/images/2015-05-27-191152.jpg',0)

From: stackoverflow.com/q/30506126

Back to homepage or read more recommendations: