我正在阅读我从互联网上获取的图像,然后立即在python中读入OpenCV,如下所示:
# read in image as bytes from page
image = page.raw_stream.read()
frame = cv2.imdecode(np.asarray(bytearray(image)), 0)
我收到了libpng警告:
libpng warning: iCCP: known incorrect sRGB profile
如何在imread之前删除sRGB配置文件?人们建议在阅读之前通过imagemagick在png文件上进行操作,但这对我来说是不可能的。有没有办法在python中直接执行此操作?
编辑:
如果我使用https://uploadfiles.io/m1w2l处的文件运行它并使用代码,我无法在下面的答案中获取代码来解决我的问题:
import cv2
import numpy as np
with open('data/47.png', 'rb') as test:
image = np.asarray(bytearray(test.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
我收到同样的警告
答案 0 :(得分:2)
使用 lists.stream().reduce((a, b) -> a.size()>b.size()? a:b).ifPresent((a)-> System.out.println(a.size()));
:
urllib
使用import cv2
import urllib
resp = urllib.request.urlopen('https://i.imgur.com/QMPkIkZ.png')
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
:
skimage
如果您使用OpenCV import cv2
from skimage import io
image = io.imread('https://i.imgur.com/QMPkIkZ.png')
image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGRA)
获得奇怪的显示,请记住OpenCV不显示Alpha通道。