| |
|
开发:
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知识库]图像线性拉伸Python使用公式 |
1.框架构建①先导入图像; ②把图像转为矩阵形式储存; ③然后通过函数调用,拿到图像灰度的最大和最小值; ④对图像进行处理,使用公式: ? ? ⑤把拉伸之后的矩阵转换为图像; ⑥显示原图和拉伸之后的图像。 2.调用的第三方库本次图像线性拉伸的实践通过调用numpy、matplotlib、PIL(Python Image Library 的简称)。 ①Numpy 是 Python 的一个第三方库,就是 Numerical Python 的意思。这是一个科学计算的的核心库,有着强大的多维数组对象。 Numpy 数组是一个功能强大的 N 维数组对象,它以行和列的形式存在,我们可以通过 Python 列表来初始化 Numpy 数组并访问其元素。 ②PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑。比如:改变图像大小、旋转图像、图像格式转换,转换颜色通道,图像增强,直方图处理,插值和滤波等等。 ③Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt:import matplotlib.pyplot?as plt 这样我们就可以使用 plt 来引用 Pyplot 包的方法。 3.编写程序调用numpy、matplotlib、PIL库进行实践:
plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性,称之为“rc配置”或“rc参数”。 通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。rc参数存储在字典变量中,通过字典的方式进行访问。 用来正常显示中文标签?,显示负号,设置分辨率?:
?? 可以输入不同的图片路径:
?? 把输入的图片利用numpy?库转为矩阵形式储存:
?? 可以输入用户想要拉伸到的最大值、最小值。 用int()、eval()都可以把用户输入的字符串类型转为数值:
获得想要被拉伸的原图的最大、最小值:
b.shape[0]代表包含二维数组的个数,b.shape[1]表示二维数组的行数,b.shape[2]表示二维数组的列数。 然后运用公式对图像进行处理: 公式:?(每一个灰度 - 灰度最小值)*(拉伸后最大值 - 拉伸后最小值)+拉伸后最小值 (灰度最大值-灰度最小值) Image.fromarray实现array到image的转换,把矩阵转为最后的图像final_image。
?? 自定义函数,并排显示图片及拉伸之后的直方图?:
?? 定义图片框:
将画板分为1行两列,第一幅图显示原始图像:
?? 定义标题和显示颜色条:
将画板为1行两列,第二幅图显示拉伸之后的图像,默认显示坐标轴。 plt.axis('off') :可以不显示坐标轴。
图片窗中展示图片:
?? 调用我们自定义的函数ShowImageAndHist,传入参数(图片的路径),即可获得原图像和灰度图像共同显示。
?4. 运行结果显示结果如下: ? ? 5.创新亮点①本次实验具有一定的交互性,可以用户输入图像的绝对位置或相对位置,可以手动输入拉伸后的最大、最小值进行拉伸,通过shape关键字获取图像形状,返回图像行数、列数以及通道数的元组。 ②本代码灰度图像和彩色图像都可以进行处理。 ③本次实验结果会同时显示原图和拉伸之后的图像,可以进行一个拉伸效果的对比,更具有直观性。 ④实践结果使用了标题、颜色条、坐标轴进行显示,意在丰富图片显示时的内容,更具有美观性。 6.总代码
? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/17 2:35:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |