关于assert im_orig.shape[2] == 3, "3ch image is expected"

环境:python3.4,opencv3

大家如果用selective_search函数搜索目标的话,有时候会出现该错误“assert im_orig.shape[2] == 3, "3ch image is expected”,不考虑你导入的图片不存在后,主要原因是你二次灰度化了,测试代码如下:

    image_path = "tmp.png"
    # 用cv2读取图片,如果tmp.png本身就是灰度化以后的图片,那么再调用第三句代码时,后边selective_search会报错
    img_tmp = cv2.imread(image_path)
    
    GrayImage=cv2.cvtColor(img_tmp,cv2.COLOR_BGR2GRAY)#二次灰度化,如果要避免该问题,请不要二次灰度化,比如可以加个判断,判断一下图片通道值
   
    # selectivesearch 调用selectivesearch函数 对图片目标进行搜索
    img_lbl, regions = selectivesearch.selective_search(img, scale=200, sigma=0.9, min_size=20)

猜你喜欢

转载自blog.csdn.net/zgx123666/article/details/79230277