| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 数字图像处理——实验一 Python中数字图像处理的基本操作 -> 正文阅读 |
|
[人工智能]数字图像处理——实验一 Python中数字图像处理的基本操作 |
数字图像处理——实验一 Python中数字图像处理的基本操作一、实验目的(1)熟悉及掌握在Python中能够处理哪些格式图像; (2)熟练掌握在Python中如何用 opencv-python 读取图像; (3)掌握如何利用Python来获取图像的大小、颜色、高度、宽度等相关信息; (4)掌握如何在Python中用 opencv-python 按照指定要求存储一幅图像的方法; (5)掌握图像间的转化。 二、实验主要仪器设备(1)计算机; (2)Python及PyCharm软件; (3)典型的灰度、彩色图像文件。
三、实验原理3.1 数字图像的表示和类别一幅图像可以被定义为一个二维函数 f ( x , y ) f(x,y) f(x,y),其中 x x x 和 y y y 是空间(平面)坐标, f f f 在任何坐标 ( x , y ) (x,y) (x,y) 处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如 图1 所示。因此,当 f f f 的 x x x 、 y y y 分量和振幅都是有限且离散的量时,称该图像为数字图像。 在Python中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映射表矩阵。opencv-python 支持四种图像类型,其区别在于数据矩阵元素的不同含义。它们是:
(1) 亮度图像 也称灰度图像。一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1]。 (2) 二值图像 二值图像是指在图像中,每个像素的灰度等级只有两种。即全黑或者全白,在Python中,一幅二值图像是一个取值只有0和255的numpy数组。 (3) 索引图像 索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。 一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。 (4) RGB图像 一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相似点都是在特定空间位置的彩色图像相对应的红、绿、蓝三个分量。按照惯例,形成一幅RGB彩色图像的三个图像常称为红、绿或蓝分量图像。 值得注意的是,在 opencv-python 中,加载图像通道的顺序是BGR。但是 matplotlib(Python的一个绘图库)以RGB模式显示图像。因此,如果使用 opencv-python 读取彩色图像,则 matplotlib 中将无法正确显示彩色图像。 3.2 opencv-python图像文件格式opencv-python 支持处理以下几种图像文件格式: (1) PCX(Windows Paintbrush)格式
(2) BMP(Windows Bitmap)格式
(3) HDF(Hierarchical Data Format)格式
(4) JPEG(Joint Photographic Experts Group)格式
(5) TIFF(Tagged Image File Format)格式
(6) XWD(X Windows Dump)格式
(7) PNG(Portable Network Graphics)格式 四、实验内容及代码4.1 实验内容(1)利用 opencv-python 读取一幅彩色图像,并读取图像的基本信息; (2)利用 opencv-python 显示图像; (3)对彩色图像进行灰度化处理; (4)对灰度图像进行二值化处理; (5)对图像进行几何变换(缩放,平移,翻转); (6)储存处理后的图像。 4.2 实验数据本实验有且仅用到一张图片,原始图片如 图2 所示: 4.3 实验代码(1)读取以及显示原始彩色图像 cv2.imread() 函数为 opencv-python 包的读取图片的函数,该函数的变量列表如下:
第一个参数
实现代码:
通过 opencv-python 显示原始彩色图像: 打印原始图像的大小和类型: (2)对原始彩色图像进行灰度化处理
实现代码:
对原始彩色图像进行灰度化处理后的图像: (3)对灰度图像进行二值化处理
实现代码:
对灰度图像二值化处理后的图像: (4)对图像进行几何变换(缩放,平移,翻转)
实现代码:
对原始彩色图像放大2倍后的图像: 附录:整体代码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:40:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |