关于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学习中遇到的一些函数的总结的主要内容,如果未能解决你的问题,请参考以下文章

关于openCV学习中遇到的一些函数的总结

《学习opencv》笔记——关于一些画图的函数

关于OpenCV中常见函数用法总结

对于近期在C语言学习中碰到的一些关于字符串的函数的总结

在学习AJAX时关于JSON有一些疑问总结

OpenCV学习OpenCV中CV_8UC3等宏定义的含义