关于openCV学习中遇到的一些函数的总结
Posted 是一个小迷糊吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于openCV学习中遇到的一些函数的总结相关的知识,希望对你有一定的参考价值。
关于openCV学习中遇到的一些函数库的总结
1.读取写入图像文件
img = numpy.zeros((3,3),dtype=numpy.uint8)
通式:
numpy.zeros(shape,dtype,order)
作用:
通常是把数组换成想要的矩阵
返回值:
返回来一个给定形状和类型的数组
参数:
shape:定义返回数组的形状
dtype:生成矩阵的数据类型,可选参数,默认numpy.float64
order: ‘C’ , ‘F’ ,可选,默认:‘C’,是否在内容中以行(‘C’)或列(‘F’)顺序存储多维数据。
img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
通式:
cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );
作用:
对图像进行色彩空间的转换
返回值:
返回一个修改后的图像
参数:
InputArray src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类(Mat类用来保存矩阵类型的数据信息,包括向量、矩阵、灰度或彩色图像等数据)
OutputArray dst:输出图像即进行颜色空间变换后存储图像,也可以是Mat类
int code : 转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片
int dstCn:目标图像通道数,如果取值为零,则由src和code决定
import cv2
grayImage = cv2.imread('MyPic.png',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('MyPicGray.png',grayImage)
通式:
cv2,imread(filename,flags)
作用:
读取图片,默认情况下,imread返回BGR格式的图像,即使该文件使用的是灰度格式
返回值:
返回读取的图片的信息
参数:
filename:所读入图片的路径
flags:标志位,用于指定imread的模式,如下列表所示:
- cv2.IMREAD_COLOR:该模式是默认选项,提供3通道的BGR图像,每个通道一个8位值(0~255)
- cv2.IMREAD_GRAYSCALE:该模式是提供8位灰度图像
- cv2.IMREAD_ANYCOLOR:该模式提供每个通道8位的BGR图像或者8位灰度图像,具体取决于文件中的元数据
- cv2.IMREAD_UNCHANGED:该模式读取所有的图像数据,包括作为第4通道的α或透明度通道(如果有的话)
- cv2.IMREAD_ANYDEPTH:该模式加载原始位深度的灰度图像。例如,如果文件以这种格式表示一副图像,那么它提供每个通道16位的一副灰度图像。
- cv2.IMREAD_ANYDEPTH | cv2.IMREAD_COLOR:该组合模式加载原始位深度的BGR彩色图像。
- cv2.IMREAD_REDUCED_GRAYSCALE_2:该模式加载的灰度图像的分辨率是原始分辨率的1/2。例如,如果文件包括一副640 x 480的图像,那么它加载的是一副320 x 240的图像。
- cv2.IMREAD_REDUCED_COLOR_2:该模式加载每个通道8位的BGR彩色图像,分辨率是原始图像的1/2
- cv2.IMREAD_REDUCED_GRAYSCALE_4:该模式加载灰度图像,分辨率是原始图像的1/4
- cv2.IMREAD_REDUCED_COLOR_4:该模式加载每个通道8位的彩色图像,分辨率是原始图像的1/4
- cv2.IMREAD_REDUCED_GRAYSCALE_8:该模式加载灰度图像,分辨率是原始图像的1/8.
- cv2.IMREAD_REDUCED_COLOR_8:该模式加载每个通道8位的彩色图像,分辨率位原始图像的1/8.
2.在图像和原始字节之间进行转换
byteArray = bytearray(image)
通式:
bytearray([source[, encoding[, errors]]])
作用:
将对象转换为 bytearray 对象,或者创建指定大小的空字节数组对象。
返回值:
返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
参数:
- 如果 source 为整数,则返回一个长度为 source 的初始化数组;
- 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
- 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
- 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
- 如果没有输入任何参数,默认就是初始化数组为0个元素。
grayImage = numpy.array(grayByteArray).reshape(height,width)
bgrImage = numpy.array(bgrByteArray).reshape(height,width,3)
以上是关于关于openCV学习中遇到的一些函数的总结的主要内容,如果未能解决你的问题,请参考以下文章