美文网首页
OpenCV-Python学习(一):图像入门

OpenCV-Python学习(一):图像入门

作者: 星光下的胖子 | 来源:发表于2020-06-23 17:22 被阅读0次

目标:

  • 1.读取图像
  • 2.显示图像
  • 3.保存图像
  • 4.使用Matplotlib显示图像

一、读取图像

读取图像函数:

imread(filename, flags=None)
参数:
  filename: 图像所在路径
  flag: 指定读取图片的方式
    cv.IMREAD_COLOR或1: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
    cv.IMREAD_GRAYSCALE或0:以灰度模式加载图像
    cv.IMREAD_UNCHANGED或-1:加载图像,包括alpha通道(用图片原格式打开)

示例:

# 1.读取图像
import cv2

# 加载灰度图像
img = cv2.imread("image/1.jpg", 0)

二、显示图像

显示图像函数:

imshow(winname, mat)
参数:
  winname: 窗口名称
  mat: 需要显示的图片对象

示例:

# 2.显示图像
import cv2

img = cv2.imread("image/1.jpg")  # 读取图片

cv2.namedWindow("image", cv2.WINDOW_NORMAL)  # 自定义一个窗口,并且该窗口的大小可以调整
cv2.imshow("image", img)  # 使用"image"窗口显示该图片
cv2.waitKey(0)  # 等待键盘输入
cv2.destroyWindow("image")  # 销毁指定的窗口
# cv2.destroyAllWindows()  # 销毁所有的窗口

一般在imshow()后要使用waitKey()函数,给图像绘制留下时间,不然窗口会出现无响应情况,并且图像无法显示出来。

其他函数分析:

  • cv2.namedWindow(winname, flags=None) 创建一个窗口
    winname: 窗口名
    flags: 窗口的类型,默认是cv.WINDOW_AUTOSIZE。如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。
  • cv2.waitKey(0) 一直等待键盘按键,直到键盘按键按下才退出。鼠标放到图片区域,然后按键盘继续向下执行。
    cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(n)里面的n毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1。 一般设置为0,他将无限等待键盘的输入。
  • cv2.destroyAllWindows() 删除窗口。
  • cv2.destroyWindow(windowname) 删除指定窗口

展示窗口如下图所示:


三、保存图像

保存图像函数:

imwrite(filename, img, params=None)
参数:
  filename: 保存的新图片名称
  img: 要保存的图片对象
    cv.IMREAD_COLOR或1: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
    cv.IMREAD_GRAYSCALE或0:以灰度模式加载图像
    cv.IMREAD_UNCHANGED或-1:加载图像,包括alpha通道(用图片原格式打开)
  img: 指定读取图片的方式

示例:

# 3.写入图像
import cv2

img = cv2.imread("image/1.jpg")  # 读取彩色图

# 色彩空间转换
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 将彩色图转化为灰度图
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)  # 将彩色图转化为HSV图

cv2.imwrite("1_gray.jpg", gray)  # 保存灰度图片
cv2.imwrite("1_hsv.jpg", hsv)  # 保存HSV图片

其他函数:

  • cvtColor(src, code, dst=None, dstCn=None) 色彩空间转换
    src:原始图片
    code:转换类型。有cv2.COLOR_BGR2RGB、cv2.COLOR_BGR2RGBA、cv2.COLOR_BGR2GRAY、cv2.COLOR_BGR2HSV、cv2.COLOR_BGR2YUV等

四、使用Matplotlib显示图像

示例:

# 4.使用MatPlotlib显示图片
import cv2
import matplotlib.pyplot as plt

img = cv2.imread("image/1.jpg", cv2.IMREAD_GRAYSCALE)

plt.imshow(img, cmap="gray")  # cmap指定颜色映射为"gray",即以灰度图的形式显示该图片
plt.xticks([]), plt.yticks([])  # 隐藏x轴和y轴上的刻度
plt.show()  # 显示图片

相关文章

网友评论

      本文标题:OpenCV-Python学习(一):图像入门

      本文链接:https://www.haomeiwen.com/subject/tuyhfktx.html