图片的基本读取和保存操作

  • 编程要求
    • 代码
    • 相关知识
      • 使用OpenCV,需要先进行导包操作
      • 读取图像
      • 保存图像
      • 兴趣窗口

编程要求

根据提示,在右侧编辑器补充 Begin-End 代码,实现图片的读取、保存以及兴趣窗口截取的操作。具体要求如下:
1.读取给定路径下的图片。
2.图片兴趣区域截取。将要求 1 读取的图片,截取[100:150,200:300]的兴趣区域,并保存成cap.png。

代码

import cv2
def Gen():filepath = '/data/workspace/myshixun/task1/cat.jpg'# 读取给定路径filepath的图片cat.jpg########## Begin ##########img = cv2.imread(filepath,cv2.IMREAD_COLOR)########## End ########### 读取感兴趣窗口[100:150,200:300]并保存为指定路径savepathsavepath='/data/workspace/myshixun/task1/out/cap.png'########## Begin ##########img2 = img[100:150,200:300]cv2.imwrite(savepath,img2)########## End ##########

相关知识

使用OpenCV,需要先进行导包操作

import cv2

读取图像

图片的读取是计算机视觉任务最基本的操作,OpenCV 提供了cv2.imread()函数实现图片读取的功能。

retval=cv2.imread(filename, flags)

可以看到,imread函数有两个输入参数,一个返回值:

  • retval: 返回 mat 类型,即返回读取的图像;
  • filename: 读取的图片文件路径;
  • flags: 一个读取标记,用于选择读取图片的方式。这些flags值被定义在enum cv::ImreadModes枚举类里面,更多的值请参考 OpenCV 的 API 文档 ,这里仅列举常用的标记如下:
    • cv2.IMREAD_COLOR : 加载彩色图像,图像的任何透明度都将被忽略**(默认)**
    • cv2.IMREAD_GRAYSCALE: 以灰度模式加载图像;
    • cv2.IMREAD_UNCHANGED : 加载包含Alpha通道的图像。

注意:

  • 如果缺少文件,权限不当,格式不受支持或无效,当 print(图片)时,将返回 None;
  • 该函数通过内容而不是文件扩展名来决定图像类型;
  • 图像数据将以B,G,R的顺序存储; 可以使用1,0,-1 代替表示参数flags的三种图像读取方式。
  • 图像读取后我们可以对图像显示,OpenCV 提供了cv2.imshow()函数来显示图片。
cv2.imshow(window_name, src)

该方法有两个参数,第一个为窗口名,第二个为所要显示的图片文件地址。

在调用该函数显示图片时,若出现图像窗口一闪而过这种情况,一般使用如下两行代码来驻留窗口:

cv2.waitKey(0)
cv2.destroyAllWindows()

保存图像

对于保存图像,OpenCV 提供了cv2.imwrite()函数实现图片保存功能。

cv2.imwrite(filename, img, params)

该函数三个参数为:

  • filename:保存的路径及文件名;
  • img:图像矩阵;
  • params:可选参数。常用参数如下:
    • cv2.IMWRITE_JPEG_QUALITY:对于jpeg格式的图片使用该参数。其表示的是图像的质量,值用0-100的整数表示,默认为95;
    • cv2.IMWRITE_PNG_COMPRESSION:对于png格式的图片使用该参数,表示的是压缩级别,值从0到9,压缩级别越高,图像尺寸越小。默认级别为3;
    • cv2.CV_IMWRITE_WEBP_QUALITY: 设置图片的格式为webp格式的图片质量,值为0-100。

兴趣窗口

实际上,兴趣窗口读取就是通过矩阵的切片实现的。当图片被读入,图像数据被实际存储为矩阵形式。此时可应用 Python 中矩阵的索引切片,取其中的部分区域即可。

例如,截取图1 的J20的机身[100:500,100,500]的区域:

img3 = img[100:500,100:500]
cv2.imshow('J20_body', img3)

图片的基本读取和保存操作相关推荐

  1. opencv:读取、保存操作函数

    opencv中的函数使用 OpenCV图像处理-Mat对象常用方法 1.imshow()函数 imshow()函数用于在指定的窗口显示一幅图像,函数原型如下: void imshow(const st ...

  2. opencv图像处理时使用stringstream批量读取图片,处理后并保存

    简介: 同文件输入输出流一样,使用stringstream可以批量读取图片,处理后并进行保存.因为C++中头文件 stringstream既可以从string读数据也可向string写数据,利于其这个 ...

  3. poi对word读取(文本和图片)、修改、保存操作及word转换为PDF

    word转换为PDF时要引入maven依赖 <dependency><groupId>com.documents4j</groupId><artifactId ...

  4. python视频操作——python实现读取和保存视频

    python读取和保存视频 内容来自博客+博客~ 读取视频 用cv2库的好处是返回的就是arrary,不用转换,但这种方法是从头读到尾 利用cv2库读取视频,代码实现如下: import cv2cap ...

  5. 【深度相机D435i】Windows+Ubuntu下调用D435i利用Python读取、保存RGB、Depth图片

    目录 前言 一.D435i深度相机介绍 二.Windows下安装D435i 1.安装Intel® RealSense™ SDK 2.0 2.使用Intel® RealSense™ Viewer查看D4 ...

  6. 计算机视觉__基本图像操作(显示、读取、保存)

    计算机视觉__基本图像操作(显示.读取.保存) 本文目录: ✨ 一.前言 ✨ 二.图像显示(使用OpenCV和Matplotlib显示图像) (1).使用OpenCV显示图像 (2).使用Matplo ...

  7. python对修改图片尺寸后的labelimg2/rolabelimg生成的XML文件进行多级节点的读取/修改/保存

    已经做了四张图片的标注,很复杂,但遇到两个问题: labelimg2无法对边界处的目标进行标注,导致标注不完全: 后续的算法是基于正方形的图片进行训练的,虽然可以训练矩形,但要多一步,不如在标注前就处 ...

  8. 用c语言实现存储和读取图片文件,C++实现单张图片读取和保存

    使用C++实现对单张图片的读取和保存,C语言可以参考,比较简单. #include using namespace std; void main(void) { //保存输入图像文件名和输出图像文件名 ...

  9. ios保存gif到相册_iOS相册中的GIF图片的读取与保存

    大家都知道iOS的系统相册是不支持gif图片预览的.但是,这并不代表系统相册不能保存和读取gif图片.通过Safari长按gif图片,选择保存到相册,这时保存到相册里的图片就是gif的,虽然它不会动. ...

最新文章

  1. [WWDC] What's New in Swift 4 ?
  2. android之http协议编程(源码ppt),Android网络编程(八)源码解析OkHttp中篇[复用连接池]...
  3. node模块函数图解
  4. mysql面试考点_mysql面试知识点
  5. ArrayList(4)时间复杂度
  6. OpenStack搭建glance
  7. [Chrome]查看内存使用命令
  8. 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)
  9. 图片配置文件设置 索尼a7s2_16组Sony索尼系列相机Slog2和Slog3常用Vlog灰片视频电影LTUS调色预设...
  10. MySQL中实现连续日期内数据统计,缺省天数0补全
  11. 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
  12. mysql同步一段时间后失败_mysql 主从同步失败后
  13. flask如何查询mysql_如何从Flask应用中的MySQL查询返回数据?
  14. 关于移动端H5获取微信非静默授权被拦截进入【微信快照页】问题及解决方案
  15. ShareTech大企业邮件服务器系统软件
  16. Learn Python The Hard Way (python 2.7) ex45.py 你来制作一个游戏
  17. 近来比较有意思的新形式网络广告
  18. 弱口令总结(什么是弱口令)
  19. 绝对好用!Java 变量名蛇形转驼峰方法
  20. 2021河南科技大学计算机考研科目,2021河南科技大学考研参考书目

热门文章

  1. 自定义标签(TagSupport )
  2. 留念 · 大学时代最后的系统设计图
  3. HALO博客从GAYHUB克隆到云服务器搭建 一
  4. IBM Lotus Domino 8.5 服务器管理入门手册
  5. arduino-esp32:基于TFT-eSPI库实现触摸显示屏
  6. ROS小车记录系列(二)IMU采集、过滤,与odom数据融合,发布新的odom话题
  7. 中年程序员被裁其实是件好事!
  8. 数据库常考填空题合集
  9. Python+OpenCV实现AI人脸识别身份认证系统(4)—人脸识别
  10. 【张泽华】android视频教程下载地址及上课源代码