基于龙芯平台,利用OpenCV实现读取图像、显示图像与保存图像的功能。
图像的读取、显示与保存是工程应用和学术研究中的基础操作,OpenCV提供用于完成这些基础操作的API函数,它们分别为imread()、imshow()、imwrite()和waitKey()。利用OpenCV实现图像的读取与显示的主要流程为引入OpenCV→读取图像→显示图像→等待用户输入。
OpenCV的imread()函数用于将文件中的图像读入内存,支持多种静态图像格式,如BMP、PNG、JPEG和TIFF等。imread()函数的完整格式如下。
img=cv2.imread(filename, flag)
其中,filename为文件名,flag为图像读取格式标志。若imread()函数正确读取图像,返回表示图像的NumPy数组;否则,返回NULL。
OpenCV的imshow(winname,mat)函数用于在指定的窗口中显示图像。若窗口已存在,图像直接显示在该窗口中;否则,新建一个名为winname的窗口,并显示mat参数对应的图像。
OpenCV的imwrite()函数用于将NumPy数组中保存的图像写入文件。
waitKey()函数的功能是等待用户输入。该函数的基本格式如下。
rv=cv2.waitKey([delay])
参数说明如下。
● rv:保存函数返回值。如果没有按某个键,返回−1;否则,返回所按键的对应ASCII值。
● delay:等待按键的时间(单位为ms)。若delay为负数或0,表示无限等待,其默认值为0;若设置了delay参数,等待指定时间后,waitKey()函数返回−1。
以下是使用OpenCV接口实现图像的读取、显示与保存的代码。
import cv2 # 使用imread()函数读取图片。0表示灰度图,1表示彩色图,16表示缩放后的灰度图,17表示缩放后的彩色图 img = cv2.imread("./test.jpg", 1) # 显示 # cv2.imshow("imshowtest", img) # 保存 cv2.imwrite("test1.jpg", img) cv2.waitKey(0)
运行结果如图1-1所示。
▲图1-1 运行结果