美文网首页
OpenCV-0. 图像读取、显示与保存

OpenCV-0. 图像读取、显示与保存

作者: ydlstartx | 来源:发表于2018-06-05 19:56 被阅读0次

    原文

    读取图片

    retval = cv2.imread( filename[, flags] )
    

    使用函数cv2.imread()来读取指定地址的图片,图片为numpy数组。支持的全部格式可看文档。第二个参数指出读取的方式,常用的三个:

    全部的可用标志在这里

    • 也可分别使用1、0、-1来表示上面三个标志。
    • 如果图片地址错误,该函数并不会抛出错误,而是会返回None。

    显示图片

    None = cv.imshow( winname, mat )
    

    可以使用函数cv2.imshow()在指定窗口中显示图片,第一个参数为窗口名,第二个参数为待显示图片。

    如果使用cv.namedWindow()创建窗口时使用的是cv.WINDOW_AUTOSIZE标志,那么图片会以其本身的大小显示,否则图片会根据窗口大小进行缩放。如果调用该函数之前没有创建窗口,则该函数会使用cv.WINDOW_AUTOSIZE标志来自动创建一个窗口,这是窗口大小也就是固定的。

    如果要显示的图片大于屏幕分辨率,则需要提前使用cv.WINDOW_NORMAL标志来创建一个窗口,这是窗口大小可以被缩放。

    调用cv2.imshow()之后,需要接着调用cv2.waitKey()函数,其会指定显示图片的时间(毫秒)。如果不调用该函数,则图片不会被显示。如cv2.waitKey(0)会一直显示图片,直到按下任意键。cv2.waitKey(25)会显示图片25ms,之后会自动关闭(如果在读取视频的循环中调用,则会按帧显示视频)。

    可以使用cv.destroyAllWindows()来关闭所有的窗口。若要关闭指定名的窗口,可以使用cv.destroyWindow()

    存储图片

    retval = cv.imwrite( filename, img[, params] )
    
    

    使用函数cv2.imwrite()来存储图片。第一个参数为文件名,第二个参数为待存图片,第三个参数为写图片标志,具体可看这里

    cv2.imread()默认读取的图片为BGR格式,而matplotlib使用的是RGB格式。所以使用matplotlib之前需要先转换一下。

    img = cv2.imread('image.jpg')
    # 第一种转换方法
    b,g,r = cv2.split(img)
    img2 = cv2.merge([r,g,b])
    # 第二种转换方法
    cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    # 第三种转换方法
    img = img[..., ::-1]
    

    相关文章

      网友评论

          本文标题:OpenCV-0. 图像读取、显示与保存

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