写在之前

从去年開始关注python这个软件,途中间间断断看与学过一些关于python的东西。感觉python确实是一个简单优美、easy上手的脚本编程语言,众多的第三方库使得python异常的强大。能够处理很多不同的问题,同一时候它的很多开源免费的库使得python的使用也是十分的广泛。

在科学计算、数据处理与图像领域,自己以前一直在使用matlab。感觉matlab也是一个语言优美、简单方便的编程语言,都说matlab与python在某些领域是非常类似的,确实是这样,就科学计算、数据处理上真是,matlab中很多科学计算的东西在python中基本上都有相应的库包包括进去,比方numpy,matplotlib等等,这些都是强大而又适用的。可是要说不同。那就是应用层面的了。matlab是一个商业性质的软件,正版软件也是异常的贵,个人感觉属于研究性领域的用的较多,在工作后好像一般都不怎么用这个(可能比較贵的缘故)。可是总的来说matlab相同在计算领域是强大无比的。

Opencv是一个开源的计算机视觉库,从開始研究图像方面,并没有真正接触过它,使用的都是matlab带的图像处理库,如今看来他们非常多函数也是那么的神似。可是opencv毕竟是一个专业性的库包,里面的很多函数matlab并没有,并且从其使用面及推广程度上看,opencv确实也是那么强大。

所以在图像领域了解opencv(不管是python版本号的还是C++版本号的)都是必要的,可是对于简单适用的学习者来说。了解了解python版的就足够了。

(一)关于python

首先关于python想说的是。单纯的官网下载的python并不大,是一个最初的python。进行一些简单的操作时能够的。可是当你进行复杂一点的时候,就须要很多第三方的安装包。比方numpy等等,这些库安装进去说起来也不是非常复杂,网上有非常多教程,可是当很多的包安装的时候,有的库包并没有你的电脑的版本号,等等还有很多因素导致你的库包安装不进去,想想还是挺麻烦的。我自己以前就是安装各种包快要崩溃了。最后索性找到了一个集成的软件,就是把经常使用的包都加进去了的python,软件是Ipython。是一个集成的科学计算软件。里面集成了很多包,并且是一个神似matlab的软件,有调试,測试。观看变量数值等等很多相同的地方,所以假设你是想研究这样面而又苦恼安装包的话,就下载个这个安装起来吧。

(二)Python下的opencv使用

本系列博客的重点是记录python下学习opencv的方法、笔记与一些想法。关于这样的类型主题。csdn上也有非常多,也有非常专业的,首推的就是以下这个博主写的一个PDF文件,确实是好东西(大感博主无私):

http://bbs.csdn.net/topics/390837851

http://pan.baidu.com/s/1jG62bhO

再有就是以下这个博主系列的博客,非常的好,能够学习:

http://blog.csdn.net/sunny2038/article/category/904451

在众多资料下,简单记录下自己的学习笔记。

(三)从头開始–读取图像

关于python下使用opencv读取图像。

首先须要导入opencv包,上面说的那个Ipython并没有opencv包,所以想使用的请先正确导入opencv包再说。至于怎么导入,先下载个opencv包,里面有关于python的opencv包,把这个想办法导进去进行了(非常easy,百度下。略过吧)。

关于Ipython的执行界面,我的是这样的(名字变成spyder了):

在读取图像之前,你得把你的做实验的图像事先放到工作文件夹下才行。读取函数是cv2.imread(),关于函数说明:

cv2.imread(‘图像名称’。’可选參数’)

可选參数决定读入图像的模式:

0:读入的为灰度图像(即使图像为彩色的)

1:读入的图像为彩色的(默认);

注意的是:即使图像在工作空间不存在,这个函数也不会报错,仅仅只是读入的结果为none。好了。读入一个图像就是这样的:

import cv2

img = cv2.imread(‘flower.jpg’)

当你的import cv2执行后没有错误了,那么就导入成功了。

(四)储存图像

储存图像函数:cv2.imwrite(‘保存的图像名’,图像,‘參数’)

正常的图像储存使用就是cv2.imwrite(‘保存的图像名’。图像)。后面一个參数默认。保存的图像名还得带类型,比方jpg,bmp等等,OpenCV眼下支持读取bmp、jpg、png、tiff等经常使用格式。第三个參数较复杂,还得分是jpg、bmp等等图像的类型不同而不同,事实上就是决定了图像储存大小,清晰度的,默认的就非常好。想细究的能够看以下。这个里面有部分介绍:

(五)图像显示

Opencv自带显示图像函数。可是较为复杂并且个人感觉不稳定。这里在介绍一种显示方法,就是使用库包matplotlib(这个库包Ipython自带)来显示图像。

首先是opencv自带函数显示,一般要显示一个图像。在图像有了之后,然后直接以下函数一起组合使用:

cv2.imshow('image',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

函数cv2.imshow的第一个參数是名字,第二个是要显示的图。然而为了让图像在显示屏上停留才有了以下两句话一起使用。因为系统(32位与64位)的不一样,有的时候会出现显示不出来,个人感觉opencv本身c语言写的。存在着系统上的差异,并且这样的显示方法无法保存图像、调整图像大小等等,这里介绍还有一种经常使用且强大的显示图像方法,使用matplotlib库包中的pyplot子包来显示,这样的显示方法不但稳定。还能够调整大小、保存显示的图像等等。那么一般它的用法例如以下:

import cv2

from matplotlib import pyplot as plt

img = cv2.imread('good.jpg',0);#打开为灰度图像

plt.imshow(img, 'gray') #必须规定为显示的为什么图像

plt.xticks([]),plt.yticks([]) #隐藏坐标线

plt.show() #显示出来。不要也能够,可是一般都要了

以下是显示的上述图,能够看到会在一个新的界面显示出来:

python储存与读取图片_Python下opencv使用笔记(一)(图像简单读取、显示与储存)...相关推荐

  1. C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

    C++下opencv学习笔记(一)(图像的简单读取丶显示与存储) 前言 学习C++ OpenCV,第一需要具备面向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门.觉得自己基础已经有了可以 ...

  2. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

  3. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

  4. OpenCV 基础实战一图像的读取和显示

    OpenCV 基础实战一图像的读取和显示 该系列主要是完成功能 图像的读取和显示 该系列主要是完成功能 文章主要是基于python3(pycharm) +Opencv3 做的讲解和实现,对于代码的原理 ...

  5. Opencv学习笔记(八) -- 图像色彩空间转换

    1.常见图像色彩空间 RGB RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道 ...

  6. python opencv 读取图片_Python opencv 读取图像

    对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB值. 由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接 ...

  7. python解码图片_python的opencv读取解码的base64图片失败

    问题描述 js利用canvas.toDataURL("image/png")将canvas元素转化为base64的图片编码. python获取base64编码并解码并且保存为图片储 ...

  8. python通过网络发送图片_python 打开网络图片

    Python为图片加水印 Pillow是python的一个功能强大的图像处理的库,可对图像进行高质量的压缩变换等操作,前几天看到一些公众号,提供了为用户头像加装饰的操作,于是自己试了一下,20行搞定! ...

  9. opencv把图片读为matlab,OpenCv和matlab对图像的读取

    现对一副名字为rice.bmp(figure1)(灰度图)的图像做实验,如图可知 1:matlab是从1开始读取行.列,Opencv是从0开始读取.Console中显示的第五行,是由 printf(& ...

最新文章

  1. 主攻ASP.NET.4.5 MVC4.0之重生:Entity Framework生成实体类步骤(十三)
  2. 相机模拟激光雷达 建图
  3. JS中的!=、== 、!==、===的用法和区别。
  4. elasticsearch 基础语句
  5. linux c 域名转ip函数 gethostbyname 返回结构体 hostent 简介
  6. python管理包管理工具pip和conda使用,及使用pip和conda创建虚拟环境
  7. 最全整理!Python 操作 Excel 库 xlrd与xlwt 常用操作详解!
  8. ByteBuffer 类
  9. 模型压缩 相关文章解读
  10. 6本书,读懂2022年最火的边缘计算
  11. rabbitMq消息不可达returnListener的使用
  12. python中 tolist_python 列表,数组,矩阵两两转换tolist()的实例
  13. c#中关于结构体和字节数组转化
  14. 对称密钥交换协议——实现在不安全的信道安全地传输密钥
  15. 蓝海灵豚医疗器械管理隐形眼镜专版用户指南5.9.0.0
  16. GCC详解-Binutils工具之c++filt
  17. 2021江苏省高考成绩排名查询,江苏高考成绩排名查询系统,2021年江苏个人成绩一分一段表...
  18. 360 腾讯 迅雷Windows编程 网络编程面试题及答案
  19. 解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
  20. 基于Go语言Echo+Layui的OA办公系统

热门文章

  1. python主流编程语言_对5种主流编程语言的吐槽!
  2. std::string 收缩到合适大小_如何选择合适的自动伸缩门尺寸-深圳自动伸缩门供应商...
  3. 实例源码_SpringBoot数据库源码解析Template实例化操作
  4. 海啸(二维前缀和/二维树状数组)
  5. mysql-日志浅析_mysql日志使用浅析
  6. 阿里云IoT戴高:IoT场景化的本质是打造数智空间
  7. AI现状 人才短缺成为障碍
  8. 如何提升代码可读性?阿里发布16条设计规约
  9. 启动T0运行的C语言语句是,单片机填空题期末复习。、
  10. 游戏设计模式思考:“穿越火线”中的“策略模式”