在python中作为函数参数传递图像

在python中作为函数参数传递图像,python,python-2.7,opencv,grayscale,Python,Python 2.7,Opencv,Grayscale,我试图在python中将一个图像文件作为函数参数传递,但其中有一个错误,我看不出可能的原因。我必须将此图像转换为灰度,如果g=1,则将其显示为输出,否则我必须输出与其相同的图像。我已将代码保存在存储图像的同一位置 import cv2 def color_grayscale(filename, g): img = cv2.imread(filename) grayscale_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) if g=

我试图在python中将一个图像文件作为函数参数传递,但其中有一个错误,我看不出可能的原因。我必须将此图像转换为灰度,如果g=1,则将其显示为输出,否则我必须输出与其相同的图像。我已将代码保存在存储图像的同一位置

import cv2

def color_grayscale(filename, g):
    img = cv2.imread(filename)
    grayscale_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    if g==1:
        img = grayscale_img
    cv2.imshow('image',img)

color_grayscale('test_img1.jpg',1)
错误是:

Traceback (most recent call last):
File "C:/Users/NOOR BRAR/Documents/College Stuff/5th SEM/e-yantra/task1/PS1_Task1/Task1_Practice/test_images/coeinsog", line 10, in <module>
color_grayscale('test_img1.jpg',1)
File "C:/Users/NOOR BRAR/Documents/College Stuff/5th SEM/e-yantra/task1/PS1_Task1/Task1_Practice/test_images/coeinsog", line 5, in color_grayscale
grayscale_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
error: ..\..\..\..\opencv\modules\imgproc\src\color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
回溯(最近一次呼叫最后一次):
文件“C:/Users/NOOR BRAR/Documents/College Stuff/5th SEM/e-yantra/task1/PS1_task1/task1_Practice/test_images/coeinsog”,第10行,in
彩色灰度('test\u img1.jpg',1)
文件“C:/Users/NOOR BRAR/Documents/College Stuff/5th SEM/e-yantra/task1/PS1_task1/task1_Practice/test_images/coeinsog”,第5行,彩色、灰度
灰度\u img=cv2.CVT颜色(img,cv2.COLOR\u bgr2灰色)
错误:..\..\..\..\opencv\modules\imgproc\src\color.cpp:3737:错误:(-215)函数cv::cvtColor中的scn==3 | | scn==4

我添加了错误消息@AndrasDeaktry
img=cv2.imread(filename,g)
您的图像是否有可能没有足够的通道?无法工作@ValijonI尝试了另一个图像@AndrasDeak。现在的问题是,只有名为image的窗口出现,但没有显示任何图像,并且在一段时间后它变得没有响应。我添加了错误消息@AndrasDeaktry
img=cv2.imread(filename,g)
是否可能您的图像没有正确数量的通道?不起作用@ValijonI尝试了另一个图像@AndrasDeak。现在的问题是,只有名为image的窗口出现,但没有显示图像,过了一段时间,它就没有响应了。