OpenCV中的图像:

定义:在opencv中图像就是结构化存储数据的信息。

属性:1.宽、高和通道数目

1 print(image.shape)      #形状:行(长)、列(宽)、通道数(深度)

   2.像素数据

1  pixel_data = np.array(image)    #获取所有像素数据
2 print(pixel_data)

    3.图像的类型

1 print(type(image))      #结构类型

加载显示

读/写图像文件:cv.imread()函数用于对图片的读取;cv.imwriter()用于对图片的写操作,包括保存等

1 src = cv.imread("C:/Users/shinelon/Desktop/DL/op.jpg")      #括号类为图片的绝对路径
2 cv.imwrite("C:/Users/shinelon/Desktop/DL/12.png",gray) #保存图片到指定目录

图像的显示:cv.imshow(winname, mat)将图片在Windows窗口显示。winname:窗口名字;mat:图像名称。

1 cv.imshow("input image",src)            #将图片在Windows窗口显示

其他知识点

 cv.VideoCapture(0)        #打开电脑的摄像头,0:表示有多个摄像头时,其序号;当要读取视频是括号类为视频的路径:("D:/学习视频/Adams/ADAMS基础视频教程1.wmv") 但没有声
 cv.cvtColor(src, cv.WINDOW_AUTOSIZE)       #将图像转换成Blue-Green-Read(RGB)格式

完整代码

 1 import cv2 as cv
2 import numpy as np
3
4
5 #对视频的读取
6 def video_demo():
7 capture = cv.VideoCapture(0) #打开电脑的摄像头,0:表示有多个摄像头时,其序号.
8 # 当要读取视频是括号类为视频的路径:("D:/学习视频/Adams/ADAMS基础视频教程1.wmv") 但没有声音
9 while(True):
10 ret, frame = capture.read() #读取摄像头
11 frame = cv.flip(frame, 1) #镜像调换
12 cv.imshow("video",frame) #显示视频的帧数
13 c = cv.waitKey(50)
14 if c == 27:
15 break
16
17
18 def get_image_info(image):
19 print(type(image)) #结构类型
20 print(image.shape) #形状:长、宽、通道数(深度)
21 print(image.size) #像素数据
22 print(image.dtype) #每个通道占用的位数
23 pixel_data = np.array(image) #获取所有像素数据
24 print(pixel_data)
25
26
27 print("------Python OpenCV Tutorial-----")
28 src = cv.imread("C:/Users/shinelon/Desktop/DL/op.jpg") #括号类为图片的绝对路径
29 cv.namedWindow("input image",cv.WINDOW_NORMAL)
30 cv.imshow("input image",src) #将图片在Windows窗口显示
31 video_demo() #读取视频
32 # get_image_info(src) #读取图片参数
33 # gray = cv.cvtColor(src, cv.WINDOW_AUTOSIZE)
34 # cv.imwrite("C:/Users/shinelon/Desktop/DL/12.png",gray) #保存图片到指定目录
35 cv.waitKey(0)
36
37 cv.destroyAllWindows()    #销毁所有打开的HighGUI窗口。

OpenCV-----图像的加载与保存的更多相关文章

  1. [OpenCV学习笔记3][图像的加载+修改+显示+保存]

    正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...

  2. OpenCV图像加载与保存

    OpenCV中的图像加载与保存 头文件是包含的库,在GitHub上下载的 imread("图片路径",图片加载方式) 图片加载方式: IMREAD_GRAYSCALE 灰度图像 I ...

  3. python实现图像加载与保存,窗口创建与销毁,图片常用属性,ROI,通道的分离与合并,对比度和亮度

    目录: (一)图像加载与保存 (二)图像显示窗口创建与销毁 (三)图片的常用属性的获取 (四)生成指定大小的矩形区域(ROI) (五)图片颜色通道的分离与合并 (六)两张图片相加,改变对比度和亮度 ( ...

  4. KnockoutJS 3.X API 第七章 其他技术(1) 加载和保存JSON数据

    Knockout允许您实现复杂的客户端交互性,但几乎所有Web应用程序还需要与服务器交换数据,或至少将本地存储的数据序列化. 最方便的交换或存储数据的方式是JSON格式 - 大多数Ajax应用程序今天 ...

  5. Qt Load and Save PCL/PLY 加载和保存点云

    Qt可以跟VTK和PCL等其他库联合使用,十分强大,下面的代码展示了如何使用Qt联合PCL库来加载和保存PCL/PLY格式的点云: 通过按钮加载点云: void QMainWindow::on_pb_ ...

  6. 6.Knockout.Js(加载或保存JSON数据)

    前言 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地存储需要序列化数据),交换数据最方便的就是使用JSON格式 – 大多数的Ajax应用程 ...

  7. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  8. Tensorflow模型加载与保存、Tensorboard简单使用

    先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...

  9. TensorFlow模型加载与保存

    我们经常遇到训练时间很长,使用起来就是Weight和Bias.那么如何将训练和测试分开操作呢? TF给出了模型的加载与保存操作,看了网上都是很简单的使用了一下,这里给出一个神经网络的小程序去测试. 本 ...

  10. Knockout.Js官网学习(加载或保存JSON数据)

    前言 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地存储需要序列化数据),交换数据最方便的就是使用JSON格式 – 大多数的Ajax应用程 ...

随机推荐

  1. vue-cli3.0配置

    仅在项目根目录中新建vue.config.js文件即可,部分配置如下 module.exports = { // 基本路径 baseUrl: '/', // 输出文件目录 outputDir: 'di ...

  2. 虚拟机安装Windows系统,再安装orcale

    本文出自:http://www.cnblogs.com/2186009311CFF/p/8724441.html 1.创建新虚拟机 2.选择自定义 3.选择workstation 5.x(据安装的系统 ...

  3. 牛飞盘队Cow Frisbee Team

    老唐最近迷上了飞盘,约翰想和他一起玩,于是打算从他家的N头奶牛中选出一支队伍. 每只奶牛的能力为整数,第i头奶牛的能力为R i .飞盘队的队员数量不能少于 .大于N. 一支队伍的总能力就是所有队员能力 ...

  4. Packet Transactions: High-level Programming for Line-Rate Switches

    Name of article:Packet Transactions: High-level Programming for Line-Rate Switches Origin of the art ...

  5. Node 资源

    Node.js 首页 最新的 Node.js 核心文档 Node.js 博客 Node.js 职位公告板 Node.js 包管理器(npm)的首页

  6. Java 有关类字段的初始化

    实例代码 package text; public class MethodOverload { /** * @param args */ public static void main(String ...

  7. Oracle Between子句

    Oracle Between子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle BETWEEN运算符来选择值在一 ...

  8. WWDC2017-advanced_animations_with_uikit

    最后修改时间: 2017-12-1 官方视频链接 这个Session主要讲一下的几个内容: Basic(基础的): 动画工作原理 以及 动画如何计时 Interactive and Interrupt ...

  9. IO 输入输出流

    1) 数据流: 一组有序,有起点和终点的字节的数据序列.包括输入流和输出流.

  10. Linux新增用户,并设置Root(管理员)权限

    在使用Linux过程中,Root账号拥有最大的操作权限.为保证Root账号安全,一般不直接使用Root账号,而是直接创建一个拥有Root权限的其它账号来使用.详细操作步骤如下 第一步,创建用户,如下图 ...