
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.3.1 案例9:图像编码应用
在OpenCV中,用于图像编码的函数是imencode。imencode函数的C++语言函数定义如下:

imencode函数的Python语言函数定义如下:

imencode函数的参数说明如下。
● ext:文件扩展名,以决定输出格式。
● img:待编码图像数据。
● params:格式化编码为成对的特定参数,该参数可选,由cv:ImwriteFlags定义。
● buf:输出的数据流(返回值)。
● retval:编码是否成功的标志,类型为bool,编码成功返回true,编码失败返回false(返回值)。
本案例将读取的图像进行编码,然后保存到txt文件中,如果读者在网络中传输图像,则可以直接将编码后的数据流用于网络数据传输。本案例的代码实现如下:


在调试状态下,可以看到各变量的数值,如图2.6所示,编码后的二进制数据流保存在变量bytes_encode中。

图2.6
执行完成后,会在路径下生成imencode.txt文件,其中保存着编码后的图像数据。