<p>你刚才忘了<code>stream=True</code>和{<cd2>}在<code>requests.get</code></p>
<blockquote>
<p>resp = requests.get(url, <code>stream=True</code>)<code>.raw</code></p>
</blockquote>
<pre><code>import cv2
import numpy as np
import requests
url = r'https://i.imgur.com/DrjBucJ.png'
resp = requests.get(url, stream=True).raw
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
# for testing
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
</code></pre>
<hr/>
<p>回答你的问题</p>
<p><code>.raw</code>意味着您希望以字节流的形式检索响应,而响应不会通过任何度量来计算或转换(因此它不会解码gzip并压缩传输编码),但是使用^{<cd5><strong><em>gzip和deflate传输编码是自动进行的为您解码</em></strong>。在</p>
<p>在您的例子中,最好使用<code>.content</code>而不是{<cd2>}</p>
<p><strong>请求包文档中的以下注释</strong></p>
<blockquote>
<p><strong>Note</strong>
An important note about using Response.iter_content versus Response.raw. Response.iter_content will automatically decode the gzip and deflate transfer-encodings. Response.raw is a raw stream of bytes – it does not transform the response content. If you really need access to the bytes as they were returned, use Response.raw.</p>
</blockquote>
<p><strong>参考文献:</strong></p>
<p><a href="https://2.python-requests.org/en/master/user/quickstart/#raw-response-content" rel="nofollow noreferrer">https://2.python-requests.org/en/master/user/quickstart/#raw-response-content</a></p>
<p><a href="https://2.python-requests.org/en/master/user/quickstart/#binary-response-content" rel="nofollow noreferrer">https://2.python-requests.org/en/master/user/quickstart/#binary-response-content</a></p>