zoukankan      html  css  js  c++  java
  • Python下的OpenCV学习 02 —— 图像的读取与保存

      OpenCV提供了众多对图片操作的函数,其中最基本的就是图片的读取与输出了。

    一、读取图片

      利用OpenCV读取一张图片是非常容易的,只需要用到 imread() 函数,打开shell或者cmd,进入python,输入help(cv2.imread)获取该函数的文档,得到:

    imread(...)
        imread(filename[, flags]) -> retval

      可见, imread需要提供两个参数,第一个是图片的路径,第二个是图片读取的模式(flags),函数返回一个存储着图片像素数据的矩阵。

      flags有三个值:

    • cv2.IMREAD_COLOR             加载彩色图片,透明度将被舍弃
    • cv2.IMREAD_GRAYSCALE      灰度模式
    • cv2.IMREAD_UNCHANGED     完整的加载一张图片,包括alpha通道值(用来表示透明度)

      这三个flags还可以分别用1,0,-1代替  

    img = cv2.imread("test.jpg", cv2.IMREAD_GRAYSCALE)
    img = cv2.imread("test.jpg", 0)
    # 这两者是等价的

      现在,我们已经获得了图像test.jpg的数据,存储在img中。img实际上是一个numpy的array数组,它包含着每个像素点的数据(如果是彩色模式,则包括了bgr值,灰度模式则是灰度值)。我们可以通过下标访问每一个像素点的数据,对每一个像素点进行更改操作。

    二、在窗口中展示图片

      在加载图片之后,我们可以利用 imshow() 函数把加载的图片展示出来,同样的,我们利用help(cv2.imshow)来查看该函数的用法:

    imshow(...)
        imshow(winname, mat) -> None

      imshow需要两个参数,第一个是窗口的名字(winname),第二个是图片的像素矩阵(mat),函数没有返回值。imshow()会创建一个窗口,并在该窗口中把图片展示出来,我们不用操心图片是彩色的还是灰色,OpenCV会自动推导出图片数据的模式。那我们现在把之前存储在img里的图片展示出来:

    cv2.imshow("test", img)
    cv2.waitKey(0)            # 等待用户按下按键
    cv2.destroyAllWindows()   # 关闭所有窗口

        展示效果:                            原图:

                            

    我们可以看到,原来透明的像素点都变成黑色了,这是因为灰度模式下透明度信息被舍弃,原来透明的像素点的值变为0,也就变成了黑色(255是白色)

    三、保存图片

      我们获得了一张灰色的图片,如果想要把它保存下来,应该怎么做呢?这时候就需要利用 imwrite() 函数,python环境下输入help(cv2.imwrite),得到:

    imwrite(...)
        imwrite(filename, img[, params]) -> retval

      filename为输出图片的名字,img为要输出的图片,params为图片格式的参数,如果图片写入成功则返回True,否则返回False。

      我们把这张灰度图像保存为gray.jpg:

    cv2.imwrite("gray.jpg", img)
  • 相关阅读:
    完美配置Tomcat的HTTPS
    分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客
    使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL
    HttpClient工具类v1.7
    列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤
    拷贝一个目录或者文件到指定路径下
    判断字符是否属于中文
    Windows 7更改SVN账户密码
    FileObverse文件观察者的Debug报告
    jquery.cookie.js操作cookie实现“记住密码”,很简单很强大
  • 原文地址:https://www.cnblogs.com/magic-girl/p/opencv-python-02.html
Copyright © 2011-2022 走看看