OpenCV学习笔记01--图像处理基本操作--读取、显示、保存

       

目录

(一)读取图像

(二)显示图像

(三)保存图像


       看了很多关于图像处理的书籍和资料,准备把与图像处理相关的知识点给总结一下,以便增加印象以后用到这些知识的时候也方便查看。

       图像的概念相信大多数人都比较熟悉,要想让计算机去处理图像那当然是把一幅图像转换成数字来表示,图像由一个个的像素值组成,通过对数字的处理,以达到对图像的处理,也由此引出的图像处理这个名词。

(一)读取图像

       OpenCV是一个强大的图像处理函数库,它把一个个的功能封装成了一个函数,我们可以直接通过函数来处理我们的图像就可以了。

cv2.imread(picturename,parameters)

其中的picturename是我们读取的图像的名字,

parameters的值可以取-1,0,1,2,4,8用来标记读取的图像文件类型

取-1时:读取的是图像的原格式

取0时:将图像调整为单通道的灰度图像

取1时:将图像调整为三通道的RGB图像,若没有parameter参数时默认为取1

取2时:如果图像的深度为16或32则不变,否则转换为8位图像

取4时:以任何可能的颜色读取图像

取8时:使用gdal驱动程序加载图像

这些值没有必要去记,用到哪个的时候,查一下就可以了,默认为1。

示例:

import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
print(picture)

结果:

 下面的255是代表的每一个像素的值,即像素值,表明成功读取到这个图片。

(二)显示图像

       我们在读取图像之后,打印出来的是一个数组矩阵,是由数字组成组成的,那如何以图像的形式呈现出来呢?用下面这个函数:

imshow('windowsname',picturename)

windowsname的意思是这个窗口的名字,也就是你将要显示的这个图像它是占有一个窗口的,那么可以给这个窗口起一个别名windowsname,例如下面截图中的窗口名字lession1。

picturename就是我们上面通过imread读取到的图像文件。

示例:

import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
key = cv2.waitKey(0)

结果:如果不使用waitkey的话,图像会一闪而过。下面会介绍这个函数的用处

      下面说一下waitkey这个函数

reval = waitKey(time)

time表示的是等待按下键盘的时间,如果没有这个time,则默认为0,当该值为0或者是复数的时候,表示一直等待用户按下键盘,如果不按下键盘,程序就会停到这里。

reval表示返回的值,如果没有按下键盘,返回的是-1,如果有按键被按下的话,显示的这个按键对应的ascii码对应的值。

接下来我们通过示例来说明这个函数的功能

import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
# 当程序执行到这里的时候,我希望用户按下键盘的任意键,否则的话,我下面打印的这句话不会执行
key = cv2.waitKey(0)
print('我按下键盘之后我才能执行这句话哦')

结果:

 还有两个函数大家了解就行,

关闭某一个窗口destroyWindow(picturename),

关闭当前显示出来的全部窗口destroyAllWindows()

通过函数名我们应该可以看出它的意思是关闭我们显示的图像的窗口,可以关闭某一个,也可以全部关闭。

(三)保存图像

imwrite('pathname',picturename)

pathname表示的是你要保存到哪个文件夹,可以用绝对路径,也可以用相对路径,还要包括图像的扩展名,也就是保存的格式,如果没有写出扩展名的话,可以在picturename后面单独指定保存的格式后缀。

picturename就是我们要保存的那个图像文件

示例:

import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
cv2.imwrite('picture01.jpg', picture)

结果:我保存的路径是当前编写程序所在的这个文件夹,所以我只需要另起一个名字来保存就可以了,若我要保存到其他的文件夹中,我可能需要C:\Destop\...等等前缀。

 总结:以上就是关于图像处理的第一篇笔记,看个人时间吧,如果有能力的话,我会把相关的知识点都总结成笔记来供大家参阅。

转载请注明出处。

下一篇关于图像处理基础的知识点。

猜你喜欢

转载自blog.csdn.net/BaoITcore/article/details/120687213