【OpenCv-Python】一、Getting Started with Images

标签: OpenCv-Python 中文文档 图像识别 OpenCV 开源
111人阅读 评论(0) 收藏 举报
分类:

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 显示它时会产生一些问题。阅读
这些讨论内容,并且去尝试理解它。

查看评论

ASP+JS时的"""

在ASP中basic语句中的字符串中包含JS语句,这时处理起间隔符这特殊的符号确实是件麻烦事,苦于找不到相应的资料,一时间头痛万分.现在好了,总算让我想到了解决的办法,原来我这么"后知后觉"啊,呵呵....
  • mostone
  • mostone
  • 2001-07-12 09:44:00
  • 861

TensorFlow学习篇【1】Getting Started With TensorFlow

学习网址:https://www.tensorflow.org/get_started/get_started This guide gets you started programming...
  • lingyu666hapy
  • lingyu666hapy
  • 2017-03-14 16:52:28
  • 838

TensorFlow学习——Getting Started With TensoFlow

本博文是根据TensorFlow最新(r1.0)官方文档编写的,自己对上面的教程整理了一下,根据自己的理解写的。 本人看过TensrFlow(0.5)的官方文档。因此,我不会把全部教程都写上来,主要写...
  • louishao
  • louishao
  • 2017-03-25 20:48:51
  • 700

getting started with tensorflow

  • 2016年11月16日 12:23
  • 3.44MB
  • 下载

《getting started with p5.js》(中文版) 第一章 您好:了解p5.js

第一章 您好:了解p5.js
  • weixin_38082483
  • weixin_38082483
  • 2017-12-20 12:29:55
  • 665

2016.9.13 Programming for Everybody (Getting Started with Python)

传送门:https://www.coursera.org/account/accomplishments/certificate/JMA8ZGF6ZT6R
  • qq_33638791
  • qq_33638791
  • 2016-09-13 11:45:33
  • 510

Getting Started with WebRTC

  • 2015年01月03日 11:40
  • 1.27MB
  • 下载

Getting.Started.with.Storm.中文版,带书签

  • 2016年08月25日 23:32
  • 1.62MB
  • 下载

LLVM每日谈之十九 LLVM的第一本系统的书<Getting Started with LLVM Core Libraries>

作者:史宁宁(snsn1984)LLVM终于有了一本系统的书了——《Getting Started with LLVM Core Libraries》。这本书号称是LLVM的第一本书,但是据说日本早就...
  • snsn1984
  • snsn1984
  • 2014-11-05 09:59:52
  • 5471

Getting Started with LLVM Core Libraries阅读笔记

Getting Started with LLVM Core Libraries 目录 1 Build and Install LLVM2 External Pro...
  • cteng
  • cteng
  • 2014-09-21 00:19:54
  • 3076
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 13万+
    积分: 3331
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    免费资源网站


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论