Спасибо Марку Сетчеллу, теперь все работает.Я цитирую его:
matplotlib
требует RGB
упорядочения, тогда как OpenCV (неверно) использует BGR
Следовательно, правильный код -
def url_to_image(url):
resp = urllib.request.urlopen(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
imageBGR = cv2.imdecode(image, cv2.IMREAD_COLOR)
imageRGB = cv2.cvtColor(imageBGR , cv2.COLOR_BGR2RGB)
return image