(Python 3 / OpenCV)cv2.imwrite返回一个布尔值,而不是图像对象

时间:2018-06-19 22:53:22

标签: python-3.x return cv2

我正在尝试编辑彩色图像并返回该图像的灰度。我能够做到,但只能通过对名称进行硬编码来实现。经过一些打印语句调试后,我发现我仅在返回布尔值时使用的return语句。

def change_to_gray_scale(path):
  color_image = path
  img = cv2.imread(color_image, 0)
  gray_img = cv2.imwrite(color_image.strip(".jpg") + "_colorless.jpg", img)
  return gray_img  # Returns a Boolean and not "new_image_colorless.jpg"

我想做的事情得到它来返回新图像,但是我没有运气。我已经在这里呆了几个小时,可能只是犯了一个愚蠢的小错误。因此,在休息时,我想让其他人看一下。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

暂时,我刚刚决定对字符串格式进行一些工作。 C语言的CV2文档说imwrite返回一个布尔值,因此我将假定它与python相同。

这是我想出的解决方案。

image_str = (image_path.strip(".jpg") + "_colorless.jpg")
image_name = os.path.split(image_str)[1]

将来,我会将其放在上面的功能中。