图像处理的基本操作

1、读取图像OpenCV提供了用于读取图像的imread()方法,其语法格式如下:

image = cv2.imread(filename, flags)

参数说明:

  • image:imread()方法的返回值,返回的是读取到的图像。
  • filename:要读取的图像的完整文件名。例如,要读取当前项目目录下的test.jpg,filename的值为"test.jpg"(双引号是英文格式的)。
  • flags:读取图像颜色类型的标记。当flags的默认值为1时,表示读取的是彩色图像,此时的flags值可以省略;当flags的值为0时,表示读取的是灰度图像(如果读取的是彩色图像,也将转换为与彩色图像对应的灰度图像)。

说明:灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像。256个灰度级别分别用0(纯黑色)~255(纯白色)的数值表示。

示例 ImageTest.py:

import cv2 as cv             # 读取test.jpg
image = cv.imread("test.jpg")
print(image)           # 打印test.jpg

运行结果如下:

2、显示图像OpenCV提供了imshow()方法、waitKey()方法和destroyAllWindows()方法

(1)imshow()方法用于显示图像,其语法格式如下:

cv2.imshow(winname, mat)

参数说明:

  • winname:显示图像的窗口名称。
  • mat:要显示的图像。

(2)waitKey()方法用于等待用户按下键盘上按键的时间。当用户按下键盘上的任意按键时,将执行waitKey()方法,并且获取waitKey()方法的返回值。其语法格式如下:

retval = cv2.waitKey(delay)

参数说明:

  • retval:与被按下的按键对应的ASCII码。例如,Esc键的ASCII码是27,当用户按Esc键时,waitKey()方法的返回值是27。如果没有按键被按下,waitKey()方法的返回值是-1。
  • delay:等待用户按下键盘上按键的时间,单位为毫秒(ms)。当delay的值为负数、0或者空时,表示无限等待用户按下键盘上按键的时间。

 

(3)destroyAllWindows()方法用于销毁所有正在显示图像的窗口,其语法格式如下:

cv2.destroyAllWindows()

示例 test.py:

import cv2
image = cv2.imread("flower.jpg") # 读取flower.jpg 
cv2.imshow("flower", image) # 在名为flower的窗口中显示flower.jpg
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 销毁所有窗口

注意:
(1)显示图像的窗口名称不能使用中文,否则会出现乱码。
(2)为了能够正常显示图像,要在cv2.imshow()之后紧跟着cv2.waitKey()。

3、保存图像OpenCV提供了imwrite()方法,其语法格式如下:

cv2.imwrite(filename, img)

参数说明:

  • filename:保存图像时所用的完整路径。 
  • img:要保存的图像

示例如下:

import cv2
image = cv2.imread("flower.jpg") # 读取flower.jpg
# 把flower.jpg保存为E盘根目录下的、Pictures文件夹中的1.jpg
cv2.imwrite("E:/Pictures/1.jpg", image)

4、获取图像属性OpenCV提供了了shape、size和dtype 3个常用属性,具体含义分别如下

  • shape:如果是彩色图像,那么获取的是一个包含图像的水平像素、垂直像素和通道数的数组,即(垂直像素,水平像素,通道数);如果是灰度图像,那么获取的是一个包含图像的水平像素和垂直像素的数组,即(垂直像素,水平像素)。
  • size:获取的是图像包含的像素个数,其值为“水平像素×垂直像素×通道数”。灰度图像的通道数为1。
  • dtype:获取的是图像的数据类型。

说明:垂直像素指的是垂直方向上的像素,水平像素指的是水平方向上的像素。

示例如下:

 运行结果如下:

 

posted @   foreverL-Vmf  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示