opencv imdecode是真正的解码功能吗?

时间:2017-06-11 15:08:37

标签: python opencv jpeg decode

我使用python从url读取图像并使用opencv imdecode保存它: read url demo

import numpy as np
import urllib
import cv2

def url_to_image(url):
 resp = urllib.urlopen(url)
 data = bytearray(resp.read())
 image = np.asarray(data, dtype="uint8")
 image = cv2.imdecode(image, cv2.IMREAD_COLOR)

 return image

根据我的理解:解码将某些编码数据转换为未编码数据,例如,当您读取.jpg时,需要将Jpeg2000代码解码为可读数据。解码64base代码时,需要将64base代码转换为常规数字。总之,我认为解码需要改变数据或数据长度。

在这段代码中,我认为" resp.read()"已经读取并解码了原始位流(01001010 ...)到uint8数字(7,8,123,255 ......)以及" imdecode" do只是将长pix数组转换为opencv格式,它只是重新排序的像素而不是解码。在这个过程中,255也是255,数据长度和数据本身并没有改变。

正如演示所说:"要将阵列重新整形为2D格式,假设每个像素有3个分量(分别是红色,绿色和蓝色分量),我们调用cv2.imdecode&# 34;

如果是这样,为什么imdecode称为解码,因为它没有进行任何解码工作?

0 个答案:

没有答案