zoukankan      html  css  js  c++  java
  • 图像的加载与保存

    导入所需要的库

    import cv2 as cv
    import numpy as np
    

    as cv就是cv2,为啥这么写,我也不知,很多人都是这样简写的

    输出图片属性
    type(image)显示图片类型numpy类型的数组
    image.shapeshape会返回tuple元组,第一个元素表示矩阵行数,第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
    image.size图像大小
    image.dtype图像类型
    np.array(image)返回一个对象,可赋值给变量;作用是将图片转化为矩阵

    def get_image_info(image): # 定义一个函数来输出图片的一些属性
        print("显示图片类型numpy类型的数组",type(image))
        # 图像矩阵的shape属性表示图像的大小
        # shape会返回tuple元组,第一个元素表示矩阵行数
        # 第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
        print("shape会返回tuple元组",image.shape)
        print("图像大小",image.size) # 图像大小
        print("image.dtype图像类型",image.dtype) # 图像类型
        pixel_data = np.array(image) # 将图片转化为矩阵
        print("将图片转化为矩阵np.array",pixel_data) # 图片矩阵
    

    读取图片
    cv.imread()函数读取图片,并返回一个对象,可赋值给变量;
    src = cv.imread("pic/bizhi.jpg") # imread读取
    创建窗口,用来显示图片
    cv.WINDOW_NORMAL(不知作用) | namedWindow
    cv.namedWindow('input_image',cv.WINDOW_NORMAL)
    在指定窗口展示图片
    cv.imshow("input_image",src)
    图片另存为;存到C盘要权限
    cv.imwrite("D://2.png",src) # 2个参数,路径和原来图片名变量
    窗口显示时间,一般为0,一直显示,按键则不为0,退出(个人理解)
    cv.waitKey(0)
    删除建立的全部窗口,释放资源
    cv.destroyAllWindows()

    完整代码

    import cv2 as cv
    import numpy as np
    
    # 输出图片属性
    def get_image_info(image): # 定义一个函数来输出图片的一些属性
        print("显示图片类型numpy类型的数组",type(image))
        # 图像矩阵的shape属性表示图像的大小
        # shape会返回tuple元组,第一个元素表示矩阵行数
        # 第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
        print("shape会返回tuple元组",image.shape)
        print("图像大小",image.size) # 图像大小
        print("image.dtype图像类型",image.dtype) # 图像类型
        pixel_data = np.array(image) # 将图片转化为矩阵
        print("将图片转化为矩阵np.array",pixel_data) # 图片矩阵
    
    # 主函数 C++风格
    if __name__ == "__main__":
        # 读取图片
        src = cv.imread("pic/bizhi.jpg") # imread读取
        # 创建窗口,用来显示图片
        # cv.WINDOW_NORMAL | namedWindow
        cv.namedWindow('input_image',cv.WINDOW_NORMAL)
        # 在指定窗口展示图片
        cv.imshow("input_image",src)
        # 调用函数,输出图片属性
        get_image_info(src)
        # 图片另存为;存到C盘要权限
        cv.imwrite("D://2.png",src) # 2个参数,路径和原来图片名变量
        #  窗口显示时间,单位:毫秒 k=0: (也可以是小于0的数值)
        # 一直显示,键盘上按下一个数字键即会消 k>0:显示多少毫秒
        cv.waitKey(0)
        # 删除建立的全部窗口,释放资源
        cv.destroyAllWindows()
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    设计带构造函数的Dog类 代码参考
    动态生成Person类的对象 代码参考
    Fragment传值
    Fragment的创建
    显示Intent和隐式Intent
    Intent及其七大属性及intent-filter设置
    Activity传值的几种方式
    认识Activity
    GridView的基本使用
    Spinner的基本使用
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15129476.html
Copyright © 2011-2022 走看看