Python+OpenCV imread()和resize()函数的使用

用imread函数读取图片,想要用resize()函数缩放图片,却报错“src is not a bumpy array,neither a scalar”,读取图片的type是numpy.ndarray。请问在使用imread函数读取图片的情况下,怎么将ndarray转成array?

代码给出来看下,一般是操作PIL的图片才会有这个错误吧

在图形处理过程中出现上面的错误‘src is not a bumpy array,neither a scalar’

报错原因:cv2只能处理BGR格式图片,而image.open()读取的图片是RGB格式。

解决方式:把RGB图片转化成BGR格式

import webcolors

def rgb_bgr(r_color):
    """
    参数:
        color---RGB或者BGR
    返回值:
        BGR或者RGB
    """
    r_color_list = list(r_color)
    tmp = r_color_list[0]
    r_color_list[0] = r_color_list[2]
    r_color_list[2] = tmp
    r_color = webcolors.IntegerRGB(r_color_list[0], r_color_list[1], r_color_list[2])
    return r_color