1.1读入图像

使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供一个完整的路径,第二个参数是要告诉函数应该如何读取这幅图片。

  • cv2.IMREAD_COLOR:读取一副彩色图像。图像的透明度会被忽略,这是默认参数。
  • cv2.IMREAD_GRAYSCALE:以灰度模式读取图像
  • cv2.IMREAD_UNCHANGED:读入一副图像,并且包括图像的alpha通道
# -*- coding: utf-8 -*-
import numpy as np
import cv2 #加载一副灰色图片
img = cv2.imread('love.jpg',0)

1.2显示图像

使用函数 cv.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是图像窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字

cv2.imshow('image',img)
cv2.waitKey(0) #如果没有这行代码,图像窗口则会无响应
cv2.destroyAllWindows()

cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒内,如果按下任意键,这个函数会返回按键的ASCII码值,程序将会继续运行。如果没有键盘输入,返回值为-1,如果没有

cv2.destroyAllWindows() 可以轻易销毁(释放资源)任何我们建立的窗口。如果你想销毁掉特定的窗口可以使用 cv.destroyWindow, 将你想删除的窗口名称作为参数传递

1.3保存图像

使用函数 cv.imwrite() 来保存一个图片。 第一个参数为文件名称,第二个参数是你想要保存的图片变量。

cv2.imwrite('gLove.png',img)

1.4总结

下面的程序会以灰度模式读取一副图片并且显示出来,如果你按‘s’ 键就会保存后退出,或者按下‘esc’键仅退出则不保存灰色图片。

import numpy as np
import cv2 #对原文档中代码做了部分修改 img = cv2.imread('love.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0) & 0xFF
if k == 27:
cv2.destroyAllWindows()
elif k == 83 or k == 115:
cv2.imwrite('gLoveW.png',img)
cv2.destroyAllWindows()
else:
print('输入错误,请按 ESC 或者 S')
cv2.destroyAllWindows()

警告

如果你用的是64位的系统,你需要将 k = cv2.waitKey(0) 这里改成 k = cv2.waitKey(0) & 0xFF

使用 Matplotlib

Matplotlib 是一个 Python 的一个绘图库,它给使用者提供了各种各样的绘图方法(函数)。你将要在接下来的文章中看到它们。在这里,你将学习如何用Matplotlib 显示图像。你使用Matplotlib 能够缩放图像,保存图像等。

import numpy as np
import cv2
from matplotlib import pyplot as plt img = cv2.imread('love.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) #在x轴 y轴上隐藏刻度值
plt.show()

参阅

在Matplotlib 中有大量的绘图选项。更多细节请参考Matplotlib 文档。另外,我们会陆续了解一些。

警告

通过 OpenCv 加载彩色图像时是使用的 BGR 模式。但是Matplotlib 显示图像使用的 RGB 模式。 所以如果图像是用 OpenCv 读取的,
那么彩色图像使用Matplotlib不会正确的显示.详情请参阅练习。

附加资源

1.Matplotlib Plotting Styles and Features

练习

1.当你尝试使用 OpenCv 加载一个彩色图像并且使用 Matplotlib 显示它时会产生一些问题。阅读

这些讨论内容,并且去尝试理解它。

【OpenCv-Python】Getting Started with Images的更多相关文章

  1. 【leetcode❤python】Sum Of Two Number

    #-*- coding: UTF-8 -*- #既然不能使用加法和减法,那么就用位操作.下面以计算5+4的例子说明如何用位操作实现加法:#1. 用二进制表示两个加数,a=5=0101,b=4=0100 ...

  2. 【OpenCV开发】使用OpenCV的OpenCL(ocl)模块

    参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL模块所支持的函数 ...

  3. 【Beginning Python】抽象(未完)

    [懒惰即是美德] 抽象意味着良好的可读性:说明你在努力做什么,而不是给出你正在如何做的细节. [抽象和结构] 程序应该是非常抽象的,就像“下载网页.计算频率.打印每个单词的频率”一样易懂.翻译成程序就 ...

  4. 【opencv基础】测量运行时间的函数getTickCount/getCPUTickCount/getTickFrequency

    函数的计算结果类型是double,单位是秒. 要使用更精确的计时,就需要使用getCPUTickCount(),不过现代计算机CPU的频率会随着负载而变化所以没大有必要使用该函数,可以参看函数的介绍[ ...

  5. 【Mac + Python】苹果系统之安装Python3.6.x环境

    一.打开终端 输入:uname -a  ,查看电脑系统位数. 输入:python,查看mac系统python版本. 二.为了以后切换版本方便,安装pyenv进行版本切换以及升级. 参考文章:<M ...

  6. 雕刻效果的实现【OpenCV+QT】

    雕刻能够区分为凸雕和凹雕. 凸雕基右下角的点减去左上角的点. 凹雕是左上角的点减去右下角的点. [效果图] 由于进行了缩放.效果看起来差一些.

  7. 【leetcode❤python】 1. Two Sum

    #-*- coding: UTF-8 -*- #AC源码[意外惊喜,还以为会超时]class Solution(object):    def twoSum(self, nums, target):  ...

  8. 【leetcode❤python】 58. Length of Last Word

    #-*- coding: UTF-8 -*-#利用strip函数去掉字符串去除空格(其实是去除两边[左边和右边]空格)#利用split分离字符串成列表class Solution(object):   ...

  9. 【leetcode❤python】 8. String to Integer (atoi)

    #-*- coding: UTF-8 -*-#需要考虑多种情况#以下几种是可以返回的数值#1.以0开头的字符串,如01201215#2.以正负号开头的字符串,如'+121215':'-1215489' ...

  10. 【虫师Python】第二讲:元素定位

    一.六种定位方式 1.id 2.name 3.class name 4.tag name:定位标签 5.link text:定位一个链接,如果是中文,需要在代码文最前面加一句I话|:#coding=u ...

随机推荐

  1. apt源换国内源

    vim /etc/apt/sources.list deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http:// ...

  2. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  3. 什么是MTF曲线

    MTF(Modulation Transfer Function)是衡量镜头性能的一个重要指标.将镜头把被摄体所具有的对比度再现到像面上的忠诚度以空间频率特性进行表示,便绘成了MTF曲线图. 曲线图的 ...

  4. 计量经济与时间序列_ADF单位根检验步骤

    1 ADF检验也叫扩展的迪克富勒检验,主要作用是检测序列的平稳性,也是最常用检测序列平稳性的检验方法. 2 何为:平稳性?单位根?(略),见这部分随便的其他内容有讲解.是建模对数据的先决条件. 3 A ...

  5. 远程关机 (Windows shutdown Windows)

    在某些场景,可使用远程关机控制整个局域网中的所有电脑进行一键关机或重启,便于管理,以提高工作效率. 从远程系统强制关机,首先需要进行一些必要的设置. 1.使用 win + R 打开运行,输入gpedi ...

  6. C#面向对象---对象成员、方法加载、引用类库

    一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段 ...

  7. E. Paint the Tree(树形dp)

    题:https://codeforces.com/contest/1241/problem/E 题目大意:给你一棵树,每一个点都可以染k种颜色,你拥有无数种颜色,每一种颜色最多使用2次,如果一条边的两 ...

  8. Android drawable 加载效果

    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:ones ...

  9. 让Spring不再难懂-mvc篇

    spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器 ...

  10. 吴裕雄--天生自然 python开发学习:在Cenos 7 系统上安装配置python3.6.5

    安装相关依赖包. 在终端下输入命令:sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-deve ...