美文网首页
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