12.图像编码解码-imencode-imdecode-base64

boyanx4个月前技术教程12

视频:12.图像编码解码

# cv2.imdecode()函数
# 从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像。

# cv2.imencode()函数
# 将图片格式转换(编码)成流数据,赋值到内存缓存中;主要用于图像数据格式的压缩,方便网络传输。

#imdecode() 从网络读取图像数据 并转换成图片格式
import numpy as np
import urllib.request
import ssl
import cv2
# context=ssl._create_unverified_context()
# url='https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'
# resp=urllib.request.urlopen(url,context=context)
# #print(resp)
# image=np.array(bytearray(resp.read()))
# image=cv2.imdecode(image,cv2.IMREAD_COLOR)
# print(image.shape)
# cv2.imshow("img",image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()

#imencode() 把图片编码保存到本地
img=cv2.imread("img/bike.jpg")
print(img.shape)
img_encode=cv2.imencode(".jpg",img)[1]
#print(img_encode)
byte_encode=img_encode.tobytes()
# with open("img_encode.bin","wb") as f:
#     f.write(byte_encode)
#     f.flush()

with open("img_encode.bin","rb") as f:
    byte_encode=f.read()

nparry=np.frombuffer(byte_encode,np.uint8)
img_decode=cv2.imdecode(nparry,cv2.IMREAD_COLOR)
print(img_decode.shape)
cv2.imshow("img",img_decode)
cv2.waitKey(0)
cv2.destroyAllWindows()

视频:12.3 图像编码-base64

# Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,
# Base64就是一种基于64个可打印字符(包括a-z、A-Z、0-9、/、+)来表示二进制数据的方法。
# Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。

import base64
import cv2
import numpy as np

img=cv2.imread("img/bike.jpg")
print(img.shape)
data=cv2.imencode(".jpg",img)[1]
data=data.tobytes()
cv2tobase64=base64.b64encode(data)
#print(cv2tobase64,type(cv2tobase64))

res=cv2tobase64.decode("utf8")
#print(res,type(res))
imgdata=base64.b64decode(res)
#print(imgdata,type(imgdata))
nparr=np.frombuffer(imgdata,np.uint8)
img_decode=cv2.imdecode(nparr,cv2.IMREAD_COLOR)
#print(img_decode)
cv2.imshow("img",img_decode)
cv2.waitKey(0)
cv2.destroyAllWindows()

相关文章

用shell进行ASCII字符转换与URL编码技巧

如何将ASCII字符转换为十进制(或十六进制)值并进行相反的转换?如何进行URL编码和URL解码?如果你在编写脚本时已知八进制或十六进制值,你可以使用printf命令实现:# POSIX printf...

php json_decode返回null_php jsonp

function posturl($gateurl,$data){ $headers = array("Content-type: application/x-www-form-url...

美团外卖特征平台的建设与实践_美团外卖平台的优势和劣势

随着美团外卖业务的发展,算法模型也在不断演进迭代中。本文从特征框架演进、特征生产、特征获取计算以及训练样本生成四个方面介绍了美团外卖特征平台在建设与实践中的思考和优化思路。1 背景美团外卖业务种类繁多...

「Python爬虫」:破解网站字体加密和反反爬虫

前言:字体反爬,也是一种常见的反爬技术,例如58同城,猫眼电影票房,汽车之家,天眼查,实习僧等网站。这些网站采用了自定义的字体文件,在浏览器上正常显示,但是爬虫抓取下来的数据要么就是乱码,要么就是变成...

Javaweb知识 day16 Cookie&Session

今日内容1. 会话技术 1. Cookie 2. Session2. JSP:入门学习一、会话技术1.1概念:会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止,一次会话中包含多次请...

解锁WiFi密码,我只用了60行代码....

程序员宝藏库:https://github.com/Jackpopc/CS-Books-StoreWiFi现在已经遍布我们生活方方面面,如今,如论到工作单位,还是租住的房子,或者一家餐厅,随处都可以连...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。