Opencv-Python:图像尺寸、图像的读取、显示、保存与复制

Opencv-Python:图像尺寸、图像的读取、显示、保存与复制

原创 2017年11月23日 21:30:49
  • 4440

在使用opencv的方法时,首先必须导入opencv包。新的opencv导入cv2,这里也和cv做了一个对比

 

[python] view plain copy
  1. import cv2  

 

一、图像尺寸

图像的大小可以通过其shape属性来获取,shape返回的是一个tuple元组,第一个元素表示图像的高度,第二个表示图像的宽度,第三个表示像素的通道数。

示例:

 

[python] view plain copy
  1. if __name__ == '__main__':  
  2.     dirfile = 'dataset/data/TrainData/001.bmp'  
  3.     img = cv2.imread(dirfile)  
  4.     size = img.shape  
  5.     print size  
运行结果:(800,645,3)

 

在cv中,是通过size = cv2.GetSize(i)的GetSize()函数来获取的

 

二、读取图像

在python中不需要声明变量,知道图像的具体位置就可以通过imread()直接读取;目前opencv支持读取bmp、jpg、png等常用的一些格式,更详细的内容请参考opencv的参考文档。读取:

 

[python] view plain copy
  1. image = cv2.imread('F:/001.nmp')  

 

cv对应的方法是grey_image = cv2.CreateImage(size, 8, 1)

 

三、显示图像

首先创建一个新的窗口用于显示图像:

[python] view plain copy
  1. cv2.namedWindow('showimage')  
cv对应的方法是cv.NamedWindow("Shape Model", cv.CV_WINDOW_AUTOSIZE)

 

然后在窗口中显示图像:

 

[python] view plain copy
  1. cv2.imshow("Image",i)  
  2. cv2.waitKey(0)  
如果不加cv2.waitKey(0),你们在IDLE中的执行窗口直接无响应,在命令行中执行的时候就会一闪而过。最后一句加上cv2.destroyALLWindows()的话,就能释放窗口了。

 

cv中cv.ShowImage("Image",i)显示图像,cv.WaitKey()

 

四、保存图像

 

[python] view plain copy
  1. cv2.imwrite(F:/images',image,[int(cv2.IMWRITE_JPEG_QUALITY),5])三个参数分别对应保存的路径及文件名、图像矩阵、指定格式(对于JPEG,其表示的是图像的质量,  
[python] view plain copy
  1. 0-100的整数表示,默认为95。 注意,cv2.IMWRITE_JPEG_QUALITY类型为Long,必须转换成int;对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,  
[python] view plain copy
  1. 0到9,压缩级别越高,图像尺寸越小。这个是可选参数)  

五、复制图像

在原来的opencv中可以直接使用cv.CreateImage()创建图像,但cv2就需要使用numpy的函数了

 

[python] view plain copy
  1. import numpy as np  
[python] view plain copy
  1. image = np.zeros(img.shape, np.uint8)  
图像使用numpy数组的属性来表示图像的尺寸和提通道信息。

 

当然也可以直接复制原来的图像到一张新的图像上:

 

[python] view plain copy
  1. image = img.copy()  
也可以用cvtColor获取原图像的副本:

 

 

[python] view plain copy
  1. image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔面板服务器ip地址修改_「网站」快速搭建服务器环境及网站

目录:「NAS」我的搭建NAS全过程在文章开头我想说明的是,此文章中所使用的工具为 BT 面板即宝塔面板,适合小白使用但是对于想要提升个人能力来说, BT 面板并不是一个好选择,而作为新手来说,可以使用该面板进…

redis启动报错-磁盘满了

imjournal: fopen() failed for path: ‘/var/lib/rsyslog/imjournal.state.tmp’: Structure needs cleaning [v8.24.0-57.el7_9.1 try http://www.rsyslog.com/e/2013 ] 1.查看服务状态 systemctl status rsyslog 2.尝试重启服务 systemctl restart rsyslog 3.查看分区占用情…

杨辉三角python_Python面试150题汇总,都是常问的面试题!

周末,Python面试题每日一题暂停更新,下面把最近整理的1-50篇Python面试文整理一下,平时文章都放在比较末尾,阅读量都不高,相信很多人都没看过,如果对于Python感兴趣的,建议可以认真阅读一下&…

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nokia.wlanapp, PID: 18526java.lang.RuntimeException: Error receiving broadcast Intent { actandroid.net.wifi.SCAN_RESULTS flg0x4000010 (has extras【外部】) } in com.nokia.wlanapp.Receive…

shell 整数条件判断

两个整数的比较 整数1 -eq 整数2 判断整数1是否和整数2相等(相等为真) 整数1 -ne 整数2 判断整数1是否和整数2不相等(不相等位置) 整数1 -gt 整数2 判断整数1是否大于整数2(大于为真) 整数1 -lt 整数2 判断整数1是否小于整数2(小于为真) 整数1 -ge 整数2 判断整数1是否大于等于…

php处理上传文件的步骤,php文件上传步骤

我们在开发网站的时候,经常会遇到需要制作文件上传功能,下面我们就为大家介绍一下php制作文件上传功能的详细步骤。推荐教程:PHP视频教程第一步:创建一个文件上传表单允许用户从表单上传文件是非常有用的。请看下面这个供上传文件…

matlab求傅里叶级数展开式_傅里叶级数:从向量的角度看函数

帮助你理解线性代数与机器学习紧密结合的核心内容下文节选自北大出版社《机器学习线性代数基础》, [遇见]已获授权许可. 这本书不同于传统教材, 从新的角度来介绍线性代数的核心知识, 讲解也很棒, 又刚好参加参加了当当每满100-50的活动, 感兴趣的朋友可以关注下. 傅里叶级数&a…

c++实现超声回波包络检测_超声波物位计的选用

超声波物位计超声波在气体、液体和固体介质中以一定速度传播时因被吸收而衰减,但衰减程度不同,在气体中衰减最大,而在固体中衰减最小;当超声波穿越两种不同介质构成的分界面时会产生反射和折射,且当这两种介质的声阻抗…

Android应用开发:CardView的使用及兼容

原文:http://blog.csdn.net/airk000/article/details/39520977 点击阅读原文 --------------------------------------------------------------- 引言 在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变…

云海技术u盘怎么恢复成普通盘_BITLOCKER加密中断数据无法读取恢复一例

同行求助此问题,密码客户是知道的,输入密码后提示如图:如果点击RESUME则提示如下:无视提示关闭提示框后再次提示分区需要格式化:PC3000 DE中可以添加虚拟驱动器解析BITLOCKER加密的分区,但该例添加虚拟驱动…

git 未能顺利结束(退出码1)

按照这个博客上安装完小乌龟git后:https://blog.csdn.net/jdsjlzx/article/details/51098588win10下安装完乌龟git后无法上传文件进行文件上传时出现错误如下:git 未能顺利结束(退出码1)(922ms2018/4/17 22&#xff1a…

php sql跳过前四条数据,mysql实现每组取前N条记录的sql,以及后续的组数据量限制...

select a.msg_id, a.com_id, a.data, a.ctime from sns_user_03.user_request_86 a where 5 (select count(*) from sns_user_03.user_request_86 where uid8880386 and com_id a.app_id and msg_id a.msg_id ) order by a.ctime; 上面的sql实现分组查询,select a.…

交际过程的两个基本环节_男女相处,若不介意这些“小动作”,基本可以确定“关系暧昧”...

当你对我说再见的时候,我看到你的笑容里有祝福,眼神里却有遗憾……——南明夫人爱情中最美好幸福的事,莫过于你深爱的人,恰好也钟情于你。这种两情相悦的爱情总是如此难得,让人心生羡慕。这份甜蜜与美好,让…

Android之NetworkOnMainThreadException异常

原文链接:http://blog.csdn.net/mad1989/article/details/25964495 点击阅读原文 ------------------------------------------------------------------ 看名字就应该知道,是网络请求在MainThread中产生的异常 先来看一下官网的解释: Cl…

中国信通院金融科技负责人韩涵:大数据是生产资料的变革,区块链是生产关系的变革...

在近日召开的“2018中国金融科技产业峰会”上,中国信息通信研究院主任工程师、金融科技负责人韩涵正式发布了《中国金融科技前沿技术发展趋势及应用场景研究报告》,详细讲解了A(人工智能)B(区块链)C&#x…

php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程

《Mysql应用MySQL查询汉字的拼音首字母实例教程》要点:本文介绍了Mysql应用MySQL查询汉字的拼音首字母实例教程,希望对您有用。如果有疑问,可以联系我们。导读:最好的方法还是用 PHP 来取拼音首字母,在 MySQL 里新建一个字段来存放…

java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏

11月17日下午,20级小伙伴们迎来了第二次法语角活动!这次外教Anne-Flore Vrac 老师为同学们安排了丰富有趣的法语纸牌游戏,快来一起回顾活动的精彩瞬间吧!集体游戏一:从1到30老师首先带领同学们进行了“从1到30”的小游…

人脸识别门禁_小区人脸识别门禁或取代传统门禁刷卡方式

可以说,社区是一个人口聚集的小型社会。首先社区的人流量很大,进出是十分频繁。其次,社区的大门以及各处进出口是业主与访客、外来人员等进进出出最关键的通道。因此,每个社区都会有一套成型的门禁系统,常见的是使用门…

Java Thread.join()详解

原文地址:http://www.open-open.com/lib/view/open1371741636171.html 点击阅读原文 ------------------------------------------------------------- 一、使用方式。 join是Thread类的一个方法,启动线程后直接调用,例如: Thr…

元类编程--property动态属性

from datetime import date, datetime class User:def __init__(self, name, birthday):self.name nameself.birthday birthdayself._age 0# def get_age(self):# return datetime.now().year - self.birthday.yearproperty #动态属性def age(self): #属性描述符&#x…