图像处理之读入写入图像文件
来源:互联网 发布:网络填表终结者 下载 编辑:程序博客网 时间:2024/06/05 07:28
OpenCV是开源、跨平台的计算机视觉库,由英特尔公司发起并开发,在商业和研究领域中可以免费使用。而Python作为当前非常流行的动态语言之一,Python不仅使用非常简单,而且功能强大。通过Python来学习OpenCV框架,可以很快的理解计算机视觉的基本概念以及重要算法。下面我们就开始OpenCV的学习之旅吧!
使用OpenCV读/写图像文件:imread() 函数和imwrite() 函数能支持各种静态图像文件格式。支持:BMP、PNG、JPEG、TIFF格式的图像。接着简单介绍一下图像的细节。无论哪种格式,每一个像素都会有一个值,但是不同格式表示像素的方式有所不同。在计算机视觉中有三种常用的色彩空间:灰度、BGR以及HSV。灰度色彩空间是通过除去彩色信息来将其转换为灰阶,灰度色彩空间对中间处理特别有效。BGR即蓝、绿、红色彩空间,每一个像素点都由一个三元数组来表示,分别代表蓝、绿、红色。例如:(255,0,0)表示蓝色,(0,255,0)表示绿色,(0,0,255)表示红色。HSV分别表示色调、饱和度、黑暗的程度。
#! /usr/bin/env python# -*- coding:utf-8 -*-import cv2import numpy as npimport osimport matplotlib.pyplot as plt# 由于每个像素都是由一个8位整数来表示,即每个像素值的范围是0-255.所以,可以这样表示一个图像img = np.zeros((3,3), dtype=np.uint8) #一个黑色正方形图像图像与原始字节之间的转换
randomByteArray = bytearray(os.urandom(120000))flatNumpyArray = np.array(randomByteArray)# 转换为灰色图像grayImage = flatNumpyArray.reshape(300, 400)cv2.imwrite("RondomGray.png", grayImage)# 转换为BGR图像bgrImage = flatNumpyArray.reshape(100, 400, 3)cv2.imwrite("RandomColor.png", bgrImage)访问图像数据
# 将BGR图像的(0,0)处的像素转化为白像素img = cv2.imread("timg.jpg")# [0,0]表示最左上角。 第一个数字表示y轴或行,0表示最上角。而第二个数字表示x轴或列,0表示最左边。img[0, 0] = [255, 255, 255]cv2.imwrite("timg_1.jpg", img)# 将图像所有的G(绿色)值设为0img[:, :, 1] = 0 # img中的最后一个数表示通道,对于一个有色图像来说,有三个通道,顺序是B,G,R分别用0,1,2表示cv2.imwrite("timg_2.jpg", img)# 锁定一个区域并复制它到另一个区域my_roi = img[0:100, 0:100]img[300:400, 300:400] = my_roicv2.imwrite("timg_3.jpg", img)# 查看图像的宽度,高度和通道数,如果是单色或灰色,则没有通道数print img.shape# 图像像素的大小print img.size# 该属性会得到图像数据类型print img.dtype在窗口显示图像
imga = cv2.imread("timg.jpg")cv2.imshow("My img", imga)cv2.waitKey() # 表示等待键盘触发的时间cv2.destroyAllWindows() # 表示由opencv创建的所有窗
# 在来看一个例子,解释cv2.waitKey()的用法。img_messi = cv2.imread("messi5.jpg", 0) # 以灰色读入图像cv2.imshow("image", img_messi)k = cv2.waitKey(0)if k == 20: # 按下“ESC”键退出 cv2.destroyAllWindows()elif k == ord("s"): # 按下“s”键退出图像并保存 cv2.imwrite("image_messigray.png", img_messi) cv2.destroyAllWindows()
用matplotlib展示图像
plt.imshow(img_messi, cmap="gray", interpolation="bilinear")plt.xticks([]), plt.yticks([])plt.show()
参考:
《OpenCV 3计算机视觉Python语言实现》
OpenCV帮助文档:http://docs.opencv.org/3.0.0/dc/d2e/tutorial_py_image_display.html
所使用的图像示例:
阅读全文
0 0
- 图像处理之读入写入图像文件
- 读入图像文件并显示【C#图像处理学习笔记】
- C++图像处理中从硬盘读入图像文件,并将相应数据赋值给图像类的char**data成员
- Matlab中如何读出写入图像文件以及对图像的简单处理
- Matlab中如何读出写入图像文件以及对图像的简单处理
- Matlab中如何读出写入图像文件以及对图像的简单处理
- 【Python】数字图像处理,打开和写入图像文件
- 图像文件读入和显示
- 图像文件读入和显示
- 读入bmp格式图像文件
- 图像文件读入和显示
- matlab图像处理编程基础之读取和写入文件
- OpenCV- 图像文件读入和显示
- WPF:图像处理(一)图像文件获取与预览
- WPF:图像处理(一)图像文件获取与预览
- opencv & qt study-(4)- 图像的载入,显示,及写入到图像文件
- OpenCV使用之读入存储图像
- 图像显示、图像文件输入输出
- 文章标题
- InsertSort(插入排序)
- TensorFlow教程03:MNIST实验——回归的实现、训练和模型评估
- thread27
- CSS之定位,相对定位,绝对定位,固定定位
- 图像处理之读入写入图像文件
- PHP中MySQL、MySQLi和PDO的用法和区别
- python基础(三)——类的研究
- rsync 守护进程配置(含脚本)
- 算法导论 练习题 17.2-2
- Centos Redhat suse 系统信息查看
- 前端使用高德小记录
- 位运算
- bzoj 2324 [ZJOI2011]营救皮卡丘