OpenCV入门笔记(二) 图片的文件操作

以下介绍一下重要的几个,设计基本 图片处理 的函数,依次来了解OpenCV的入门知识。具体的具体使用方法还是以官方的API【Official Tutorials】【Python-OpenCV】为准。


imread

图片读取函数。使用方法例如以下

# read image with color
img = cv2.imread("./lena.jpg")

# OR read gray image
imgGray = cv2.imread("./lena.jpg", 0) 

# convert from BGR to GRAY
imgGray2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  • 第一个就是正常的读入一张图片;
  • 第二个加一个flag值,如flag为0。则表示读入一个灰色的图片。相当于。读入正常带彩色通道的图片后。再转化一下。

imwrite

存取图片函数,使用方法例如以下

cv2.imwrite("gray.jpg", imgGray)

非常easy,直接文件名称,加你要存取的图片即可了。

对了,这里的imgGray类型,因为Python中没有类型声明,所以用了几天还不知道是个啥。特意去试了一下。用Python的交互界面,type(imgGray)会输出为 ‘numpy.ndarray’ 的类型。我个人理解,事实上就是图片的矩阵数组。


显示图片

以下的几个函数结合起来用,能够把一张图片显示出来

title = "gray image"
cv2.namedWindow(title, cv2.WINDOW_NORMAL)
cv2.imshow(title, imgGray)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • namedWindow() 是创建一个窗体。WINDOWS_NORMAL这个參数能够不加,可是加了能够使窗体能够调节大小。
  • imshow() 不用说,显示图片用
  • waitKey() 是让窗体暂停一下,等待用户输入才结束。

    否则会一闪而过。

  • destroyAllWindows() 别忘了销毁全部的窗体

完整样例

以下的代码非常easy。就是读取一张图片,转化成灰度图并存储在本地。然后显示出来。

import cv2  

# read image
img = cv2.imread(‘./1.jpg‘)  

# change it to gray image
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  

# write gray image
cv2.imwrite("gray.jpg", imgGray)

title = "gray image"
# create a window
cv2.namedWindow(title, cv2.WINDOW_NORMAL)

# show the picture in the window
cv2.imshow(title, imgGray)  

# wait until any input of user
cv2.waitKey(0)

# destroy all window
cv2.destroyAllWindows()
时间: 2024-10-22 15:32:30

OpenCV入门笔记(二) 图片的文件操作的相关文章

C++MFC编程笔记day07 MFC的文件操作、序列化和保存

一 MFC的文件操作 1 相关类 CFile类-封装了文件句柄以及操作文件的API函数. CFileFind类-提供文件查找功能. 2 CFile类的使用 2.1 打开或者新建文件 CFile::Open 2.2 文件读写 注意:1 文件指针位置 2 异常处理 CFile::Write CFile::Read CFile::SeekToBegin 2.3 关闭文件 CFile::Close 2.4 设置/获取文件属性 CFile::SetStatus/GetStatus 3 CFileFind类

linux笔记二-----目录及文件命令

一:目录及文件操作 1.file:识别文件类型 如果是文本文件,会显示ASCII: 如果是执行会显示shell script: 如果链接文件显示链接执行文件等信息 2.touch:改变文件或目录时间.如果指定文件不存在就新建一个新文件 3.cp:复制文件户目录 cp 源目录或文件 目标目录或文件 4.rm:删除文件或目录 5.mv:移动或更名现有文件或目录 6.ln:链接文件或目录.链接分硬链接和软链接 二:查找 1.locate:查找文件或目录.查找速度快,刚进行操作后可能无法找到.因为他不是

Java api 入门教程 之 JAVA的文件操作

I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力.本章IO类的使用就从读写文件开始. 1 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件.声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取.当然, 在实际使用时,文件都包含一个的格式,这个格式需要程序员根据需要进行设计,读取已

第十二章 Python文件操作

12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file object name 文件名 mode 模式,比如以只读方式打开 buffering 缓冲区 encoding 返回数据采用的什么编码,一般utf8或gbk Mode Description r 只读,默认 w 只写,打开前清空文件内容 a 追加 a+ 读写,写到文件末尾 w+ 可读写,清空文件内容 r+ 可

python笔记第七天 文件操作

1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法. 2.读文件 读文本文件 in

Ruby七天入门(3 Mixin,集合,文件操作)

DAY 3 学习进入第三天,今天计划学习模块,集合以及简单的文件操作. 3.1Mixin 模块 面向对象语言使用继承,来将行为传播到相似的对象上.具体到语言,C++使用的是多继承,但是过于复杂,Java采用接口的方式,而Ruby则选择使用了模块,先来看下代码: module ToFile def filename "object_#{self.object_id}.txt" end def to_f file = File.open(filename,'w') file.write(t

python学习笔记——(三)文件操作

·集合操作及其相应的操作符表示集合中没有插入,只有添加,因为毕竟无序 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Vergil Zhang list_1 = [1, 4, 5, 7, 3, 6, 7, 9] list_1 = set(list_1) print(list_1, type(list_1)) list_2 = set([2, 6, 0, 66, 22, 8]) print(list_1,list_2) #交集 print

OpenCV入门笔记(三) 图片处理

OpenCV中提供了很多处理图片的强大函数,可以对很多格式的图片加特效!有点实现Photoshop里的工具的感觉. 下面先介绍一些简单和常见的特效. 二值化(Image Threshold) 参考这里:Image Processing 二值化只能处理灰度图,而所谓的灰度图,就是一幅只用 0-255 这个范围来表示每一个像素点的图像.灰度图没有色彩信息,看起来灰萌灰萌哒:但是又不完全只有黑白两种颜色. 二值化,顾名思义,就是把灰度图的0-255的范围,映射到 0 和 1 两个值上.最简单的做法,便

OpenCV入门笔记(六) 形态学变换

形态学变换(Morphological Transformations),其实是数学上的一个分支,是基于形状的一些列图像处理操作.OpenCV提供了很多方便而有用的操作函数. 一.腐蚀和膨胀(erosion & dilation) 腐蚀(erosion)和膨胀(dilation)是形态学中两个最基本的操作.他们结合后又会衍生出其他很多种复杂的过程.其基本思想很简单,就是用一个核函数,扫过原图像,用覆盖的区域中最值代替锚点(锚点即核函数当前的中心点,即扫描的中心点).下面是苏东坡<水调歌头·明