关闭

Python下opencv使用笔记(一)(图像简单读取、显示与储存)

标签: pythonopencv图像处理
10032人阅读 评论(2) 收藏 举报
分类:
  • 写在之前
    从去年开始关注python这个软件,途中间间断断看与学过一些关于python的东西,感觉python确实是一个简单优美、容易上手的脚本编程语言,众多的第三方库使得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包,把这个想办法导进去进行了(很简单,百度下,略过吧)。
关于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 Python教程(1、图像的载入、显示和保存)
那么在得到一副图像想储存,比如就直接:cv2.imwrite(‘good_gray.tif’,img)

(五)图像显示

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() #显示出来,不要也可以,但是一般都要了

下面是显示的上述图,可以看到会在一个新的界面显示出来:
这里写图片描述

1
0
查看评论

问题解决:Spyder不支持OpenCV模块代码提示

解决问题:Spyder的代码完成功能不支持某些编译模块(.pyd后缀),如OpenCV的Python模块cv/cv2,在编写脚本文件时,在已存在import cv&import cv2的前提下,输入cv. 无法弹出显示相关成员函数列表&代码完成提示。
  • liyuefeilong
  • liyuefeilong
  • 2015-08-24 23:46
  • 9082

windows下的python+ opencv安装攻略

准备文件: python2.7.12,下载链接https://www.python.org/downloads/ pip8.1.1,下载链接https://pypi.python.org/packages/41/27/9a8d24e1b55bd8c85e4d022da2922cb206f183e2d...
  • qq_14845119
  • qq_14845119
  • 2016-08-29 16:37
  • 48470

解决:Spyder不支持OpenCV模块代码提示

解决:Spyder不支持OpenCV模块代码提示1.找到 module_completion.py 文件,2.25及之前的版本位于Python目录/Lib/site-packages/spyderlib/utils/路径,2.25之后的版本位于Python目录/Lib/site-packages/s...
  • lql0716
  • lql0716
  • 2016-08-29 18:53
  • 1043

Tensorflow+Spyder+Opencv环境搭建

1.Tensorflow的安装 多种安装方式,详见tensorflow官网介绍. 在此使用包管理软件Anaconda进行安装: bash Anaconda2-4.2.0-Linux-x84-64.sh 安装完毕后重启: sudo reboot 建立Tensorflow的运...
  • lx_ros
  • lx_ros
  • 2017-12-14 17:57
  • 134

python opencv 安装及使用

windows下python的opencv模块1.opencv的安装 python中有opencv的安装包,一般建议采用anaconda的安装方式,anaconda和winpython都是比较推荐的python安装包,而anaconda安装更加傻瓜一点,解压缩就可以了。个人建议anaconda(w...
  • awakeljw
  • awakeljw
  • 2017-01-04 17:17
  • 3615

windows环境下python安装open cv 读取tiff文件

windows环境下python安装open cv 读取tiff文件背景 天池数据大赛《广东政务数据创新大赛—应用创新赛》,首先需要解决第一关,就是查看比赛给出的两个tiff格式的数据文件。本身没有地理信息专业的背景,所以压根就没打算用那些专业的gis软件。在天池技术圈里发现了一篇大神的实验文章...
  • learneraiqi
  • learneraiqi
  • 2017-09-12 22:07
  • 759

python中利用GDAL对tif文件进行读写

利用GDAL库对tif影像进行读取 示例代码默认波段为[B、G、R、NIR的顺序,且为四个波段] def readTif(fileName): dataset = gdal.Open(fileName) if dataset == None: f.write(f...
  • t46414704152abc
  • t46414704152abc
  • 2017-08-22 17:11
  • 2455

OpenCV Python教程(1、图像的载入、显示和保存)

转载请详细注明原作者及出处,谢谢! 本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇。在笔记中将以Python语言改写每章的代码。 PythonOpenCV的配置这里就不介绍了。 注意,现在...
  • sunny2038
  • sunny2038
  • 2013-06-12 17:52
  • 242153

OpenCV Python教程(1、图像的载入、显示和保存)

原文地址:http://blog.csdn.net/sunny2038/article/details/9057415 转载请详细注明原作者及出处,谢谢! 本文是OpenCV  2 Computer Vision Application Programming Cook...
  • helei001
  • helei001
  • 2015-11-06 16:37
  • 1897

如何通过URL打开图片(Python)

不论是用opencv还是PIL,skimage等库,在之前做图像处理的时候,几乎都是读取本地的图片。最近尝试爬虫爬取图片,在保存之前,我希望能先快速浏览一遍图片,然后有选择性的保存。这里就需要从url读取图片了。查了很多资料,发现有这么几种方法,这里做个记录。本文用到的图片URL如下:img_src...
  • xingchenbingbuyu
  • xingchenbingbuyu
  • 2017-05-08 11:36
  • 4946
    个人资料
    • 访问:741934次
    • 积分:7670
    • 等级:
    • 排名:第3328名
    • 原创:94篇
    • 转载:4篇
    • 译文:27篇
    • 评论:749条
    个人简介
    武汉 华中科技大学; 关注:图像处理、计算机视觉、人工智能、机器学习等领域;
    微信公众号
    最新评论