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

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

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

  1. import cv2

一、图像尺寸

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

示例:

  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的参考文档。读取:

  1. image = cv2.imread('F:/001.nmp')

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

三、显示图像

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

  1. cv2.namedWindow('showimage')

cv对应的方法是cv.NamedWindow("Shape Model", cv.CV_WINDOW_AUTOSIZE)

然后在窗口中显示图像:

  1. cv2.imshow("Image",i)
  2. cv2.waitKey(0)

如果不加cv2.waitKey(0),你们在IDLE中的执行窗口直接无响应,在命令行中执行的时候就会一闪而过。最后一句加上cv2.destroyALLWindows()的话,就能释放窗口了。

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

四、保存图像

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

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

  1. import numpy as np
  1. image = np.zeros(img.shape, np.uint8)

图像使用numpy数组的属性来表示图像的尺寸和提通道信息。

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

  1. image = img.copy()

也可以用cvtColor获取原图像的副本:

  1. image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

Opencv-Python:图像尺寸、图像的读取、显示、保存与复制的更多相关文章

  1. [OpenCV学习笔记3][图像的加载+修改+显示+保存]

    正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...

  2. python opencv —— io(帧、图像、视频的读取与保存)

    0. VideoCapture VideoCapture:构造函数: 常见成员函数: open:打开视频文件,或者捕获视频设备,该函数会首先调用 release() 函数以关闭已打开的文件或设备: P ...

  3. opencv-python教程学习系列2-读取/显示/保存图像

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...

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

    原文地址:http://blog.csdn.net/sunny2038/article/details/9057415 转载请详细注明原作者及出处,谢谢! 本文是OpenCV  2 Computer ...

  5. openCV学习——一、图像读取、显示、输出

    openCV学习——一.图像读取.显示.输出   一.Mat imread(const string& filename,int flags=1),用于读取图片 1.参数介绍 filename ...

  6. openCV—Python(2)—— 载入、显示和保存图像

    一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg& ...

  7. Python+OpenCV图像处理(一)——读取显示一张图片

    先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ...

  8. 在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图

    以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中. import cv2 import numpy ...

  9. Python下opencv使用笔记(图像频域滤波与傅里叶变换)

    Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog ...

随机推荐

  1. 【再话FPGA】在xilinx中PCIe IP Core使用方法

    采用Xilinx Virtex-5 XC5VSX50T-FF1136 FPGA或者Xilinx Virtex-5 XC5VSX95T-FF1136的板子.采用ISE13.2环境.步骤:一.建立一个IS ...

  2. 2-2-求并集A=A∪B-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第2章  线性表 - 求并集A=A∪B ——<数据结构>-严蔚敏.吴伟民版        ★有疑问先阅读★ 源码使用说明  链接☛☛☛ <数据结构-C语言版>(严 ...

  3. FFmpeg(5)-AVStream和AVCodecParameters部分参数分析

    一.AVStream AVCodecContext *codec // 已过时,使用另一个 codecpar 结构体代替. AVRational time_base // 时间基数. int64_t ...

  4. Linux系统性能监控之6个vmstat和6个iostat命令

    这篇文章主要介绍一些Linux性能检测相关的命令. vmstat和iostat的两个命令可以运行在主流的Linux/Unix操作系统上. 如果vmstat和iostat命令不能再你的电脑上运行,请安装 ...

  5. analytics详解

    数据来源,手机端上传至服务器端的原始数据 1,基本信息(第一次启动) 字段名 字段类型 备注 是否必填 appkey String   Y deviceCode String 设备号  与wifima ...

  6. 网易云信消息抄送服务的第三方接口示例(Java)

    package com.netease.nim.route; import com.alibaba.fastjson.JSONObject; import com.netease.nim.route. ...

  7. Pyperclip – A cross-platform clipboard module for Python

    Usage is simple: import pyperclip pyperclip.copy('The text to be copied to the clipboard.') spam = p ...

  8. JAVA-JSP内置对象之pageContext对象

    相关资料:<21天学通Java Web开发> pageContext对象1.pageContext对象不但可以用来设置page范围的属性,同样也可以用来设置其他范围属性,不过需要指定范围参 ...

  9. mysql行转列转换

    http://blog.csdn.net/sinat_27406925/article/details/77507478 mysql 行列转换 ,在项目中应用的极其频繁,尤其是一些金融项目里的报表.其 ...

  10. java jar包与配置文件的写法

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...