zoukankan      html  css  js  c++  java
  • 打印图片的属性和实现另存图片功能以及使用numpy

                   上一篇我们已经学了如何读取图片的功能了以及和opencv的环境搭建了,今天接着来学习,哈哈哈,今天刚好五一,也没闲着,继续学习。

                 1、 首先我们来实现打印出图片的一些属性功能, 先来看一段代码:

     1 import cv2 as cv
     2 import numpy as np
     3 
     4 
     5 def get_image_info(image):    #定义一个函数来输出图片的属性
     6     print(type(image))       #显示图片类型numpy类型的数组
     7     print(image.shape)      #图像矩阵的shape 属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵的行数,第二个元素表示矩阵的列数,第三个元素是3,表示像素由光的三原色组成
     8     print(image.size)       #表示图像的大小(下面显示2587200是等于800*1078*3)
     9     print(image.dtype)      #表示图像类型
    10 
    11 src=cv.imread("D:hh.JPG")
    12 cv.namedWindow('input image',0)
    13 cv.imshow('input image',src)
    14 get_image_info(src)
    15 cv.waitKey(-1)
    16 cv.destoryAllWindows()

             说明:上面我们用到了numpy这个库(这是opencv绑定时所依赖的库,它提供了数值计算函数,包括高效的矩阵计算函数,详细了解可以访问,www.numpy.org),上面代码中暂时没到这个numpy功能,不过马上就会用到了,哈哈。最后我们来看一下效果:

               2、接下来我们来实现另存图片功能,(也就是我刚才上面显示出来的照片,我存放的路径是在D盘里面,代码src=cv.imread("D:hh.JPG"有注明),:

       

         现在我要把它存储到E盘下面了,哈哈;

        接下来就是见证奇迹的时候了,话不多说,代码上来:

           

     1 import cv2 as cv
     2 import numpy as np
     3 
     4 
     5 def get_image_info(image):    #定义一个函数来输出图片的属性
     6     print(type(image))       #显示图片类型numpy类型的数组
     7     print(image.shape)      #图像矩阵的shape 属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵的行数,第二个元素表示矩阵的列数,第三个元素是3,表示像素由光的三原色组成
     8     print(image.size)       #表示图像的大小(下面显示2587200是等于800*1078*3)
     9     print(image.dtype)      #表示图像类型
    10     pixel_data=np.array(image);
    11     print(pixel_data)        #图片矩阵
    12 
    13 
    14 
    15 src = cv.imread("D:hh.JPG")
    16 
    17 cv.namedWindow('input image', cv.WINDOW_NORMAL)
    18 cv.imshow('input image',src)
    19 get_image_info(src)
    20 gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)#获取图片为灰色的
    21 cv.imwrite("E:hh.JPG",gray)  #把DD盘下的图片另存为E盘下了,并且还是灰色的
    22 cv.waitKey(0)
    23 cv.destoryAllWindows()

      来看一下效果:

       

         这就是今天学到的东西了,后期还会持续更新的,哈哈哈。

  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/1121518wo/p/10800911.html
Copyright © 2011-2022 走看看