上一篇我们已经学了如何读取图片的功能了以及和opencv的环境搭建了,今天接着来学习,哈哈哈,今天刚好五一,也没闲着,继续学习。
1、 首先我们来实现打印出图片的一些属性功能, 先来看一段代码:
1 import cv2 as cv 2 import numpy as np 3 4 5 def get_image_info(image): #定义一个函数来输出图片的属性 6 print(type(image)) #显示图片类型numpy类型的数组 7 print(image.shape) #图像矩阵的shape 属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵的行数,第二个元素表示矩阵的列数,第三个元素是3,表示像素由光的三原色组成 8 print(image.size) #表示图像的大小(下面显示2587200是等于800*1078*3) 9 print(image.dtype) #表示图像类型10 11 src=cv.imread("D:\hh.JPG")12 cv.namedWindow('input image',0)13 cv.imshow('input image',src)14 get_image_info(src)15 cv.waitKey(-1)16 cv.destoryAllWindows()
说明:上面我们用到了numpy这个库(这是opencv绑定时所依赖的库,它提供了数值计算函数,包括高效的矩阵计算函数,详细了解可以访问,www.numpy.org),上面代码中暂时没到这个numpy功能,不过马上就会用到了,哈哈。最后我们来看一下效果:
2、接下来我们来实现另存图片功能,(也就是我刚才上面显示出来的照片,我存放的路径是在D盘里面,代码src=cv.imread("D:\hh.JPG"有注明),:
现在我要把它存储到E盘下面了,哈哈;
接下来就是见证奇迹的时候了,话不多说,代码上来:
1 import cv2 as cv 2 import numpy as np 3 4 5 def get_image_info(image): #定义一个函数来输出图片的属性 6 print(type(image)) #显示图片类型numpy类型的数组 7 print(image.shape) #图像矩阵的shape 属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵的行数,第二个元素表示矩阵的列数,第三个元素是3,表示像素由光的三原色组成 8 print(image.size) #表示图像的大小(下面显示2587200是等于800*1078*3) 9 print(image.dtype) #表示图像类型10 pixel_data=np.array(image);11 print(pixel_data) #图片矩阵12 13 14 15 src = cv.imread("D:\hh.JPG")16 17 cv.namedWindow('input image', cv.WINDOW_NORMAL)18 cv.imshow('input image',src)19 get_image_info(src)20 gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)#获取图片为灰色的21 cv.imwrite("E:\hh.JPG",gray) #把DD盘下的图片另存为E盘下了,并且还是灰色的22 cv.waitKey(0)23 cv.destoryAllWindows()
来看一下效果:
这就是今天学到的东西了,后期还会持续更新的,哈哈哈。