opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像
阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白。
1.环境说明
1.1opencv版本:
1.2Python版本:
1.3系统:win7
注:
(1)opencv安装教程:http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows
(2)python我装的是Anaconda,我个人用着比较顺手;
(3)opencv一定要装2,不要装3,否则改报错改的会让你怀疑人生。
2.直接上代码
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 14 19:39:11 2017 @author: Thinkpad
"""
'''
2.opencv中的Gui特性
2.1图片:读图像,显示图像,保存图像
读图像
cv2.imread(a,b)
a:图像所在的路径
b:如何读取图片
cv2.IMREAD_COLOR:读入一副彩色图像,图像透明度会被忽略,这是默认参数;
cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
cv2.IMREAD_UNCHANGED:读入一副图像,并且包括图像的alpha通道 显示图像
cv2.imshow(a,b)
a:窗口名字,你可以随便随便命名,但记得要加上引号,详情见下面例子;
b:读进来的图像;
窗口会自动调整为读入图像的大小,可以显示多个窗口,但要给它们不同的名字,一旦给予相同的名字,只会显示最后一个图像。 保存图像
cv2.imwrite(a,b)
a:文件保存的地址+文件名,要用引号括起来;
b:要保存的文件;
''' import numpy as np
import cv2
img=cv2.imread('C:/Users/Thinkpad/Desktop/4.jpg',0)#读进一张彩色图像(图1),转化为灰度模式,imshow的结果是灰度图,见图2,由于图太大,这里显示不完全。
cv2.imshow('img',img)
cv2.imwrite('C:/Users/Thinkpad/Desktop/7.jpg',img)#把灰度图保存在‘C:/Users/Thinkpad/Desktop/‘路径下,命名为7.
img1=cv2.imread('C:/Users/Thinkpad/Desktop/2.jpg')#读进一张彩色图像,imshow的结果是彩色图,见图3.
cv2.imshow('img1',img1)
img2=cv2.imread('C:/Users/Thinkpad/Desktop/7.jpg')#读进一张灰度图像,imshow的结果就是灰度图,见图4.
cv2.imshow('img',img2)
'''
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限
期的等待键盘输入。
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。
'''
cv2.waitKey(0)
cv2.destroyAllWindows() '''
上面图像太大,显示不完全,解决办法如下:
一种特殊的情况是,可以先创建一个窗口,之后再加载图像。使用到的函数是cv2.namedWindow()。初始设定函数标签是cv2.WINDOW_AUTOSIZE。但是如果把标签改成cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大,或者要添加轨迹条时,调整窗口大小将会很有用。
'''
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img2)#结果见图5,大图像显示出来了。
cv2.waitKey(0)
cv2.destroyAllWindows()
图1

图2

图3

图4

图5

参考资料:http://opencv-python-tutroals.readthedocs.io/en/stable/py_tutorials/py_gui/py_image_display/py_image_display.html#display-image
end!!
opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像的更多相关文章
- opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓
阅读对象:无要求. 1.代码 ''' OpenCV中的轮廓 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.为了更加准确,要使用二值化图像.在寻找轮廓之前,要进行阈值化 ...
- opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓特征和几何矩
阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. ...
- opencv2.4.13+python2.7学习笔记--使用 knn对手写数字OCR
阅读对象:熟悉knn.了解opencv和python. 1.knn理论介绍:算法学习笔记:knn理论介绍 2. opencv中knn函数 路径:opencv\sources\modules\ml\in ...
- [OpenCV-Python] OpenCV 中的 Gui特性 部分 II
部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...
- opencv学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...
- ArcGIS案例学习笔记-点集中最近点对和最远点对
ArcGIS案例学习笔记-点集中最近点对和最远点对 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于点图层,查找最近的点对和最远的点对 数据: 方法: 1. ...
- OpenCV学习(22) opencv中使用kmeans算法
kmeans算法的原理参考:http://www.cnblogs.com/mikewolf2002/p/3368118.html 下面学习一下opencv中kmeans函数的使用. 首先我们 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
随机推荐
- angluar1时间控件,在浏览器里是没有问题的,但是真机时间报错NAN
因为是老项目并且用的angluar1有时也会很头疼没法直接打包和手机联调,所以浏览器上测试的多但是真机和浏览器还是不一样的,废话不说了,看图吧 我的时间插件代码是这样的 后台返回的数据格式是这样的 , ...
- cs架构与bs架构的对比
主要区别: Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的. 1.硬件环境不同 C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网 ...
- 用python计算圆周率Π
一.要求: 1.计算到圆周率后面越多位越好. 2.用进度条显示计算的进度. 3.要求给出圆周率Π的具体计算方法和解释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 反复执行以 ...
- pycharm工具配置
灰色主题 菜单栏File --> Settins --> Appearance & Behavior --> Appearance, Theme改成Darcula,然后App ...
- ReentrantLock 实现
ReentrantLock 实现: 关于锁的操作都是依赖于state 的值,当state =0 时候,表示 线程可以获取锁,state =1 表示锁已经占用,等待释放 获取锁的方法: protec ...
- Google弃用HttpClient 而推荐使用HttpURLConnection的原因
因为兼容性问题,谷歌不愿意维护HttpClient,而使用HttpURLConnection HttpURLConnection的API包小而简便,更适合安卓 HttpURLConnection能够提 ...
- 用同一台PC的两个网口实现Iperf的server端和client端
用同一台PC的两个网口实现Iperf的server端和client端 2015年10月20日 20:35:11 阅读数:2943 有时候需要发包,仅仅需要一定速率的流量,并不需要关心收到报文的大小,一 ...
- tmux使用(程序员适用)
原文:http://jack-boy.iteye.com/blog/1586908 tmux基本使用 tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于远程S ...
- vue项目跳转到外部链接
vue项目中遇到一个打印的功能.思考之后决定点击按钮,跳转到一个HTML页面(后台写的),利用window.print()方法调用浏览器的打印的功能. 所以,现在的问题是,怎样跳转到外部链接.开发vu ...
- PPS--在download DN出现的问题注意:
1,DN的下载条件:(没有删除没有下载) PPSL=’N’(PPSL有两个值,N时是指这个DN还没有下载) DEL_FLAG<>’Y’(DEL_FLAG有两个值,Y时说明已经删除,不会下载 ...