【图像处理】使用matplotlib库显示灰度图像为自定义颜色(2)
在下面的代码中,facies_img
的值只有[0,1,2]
表明图像是灰度图像。通过下面的代码可以让图像显示为彩色图像
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
from PIL import Image
import os
import random
import numpy as np
# 路径设置
data_dir = 'dataset'
facies_path = os.path.join(data_dir, 'faciesData')
facies_files = os.listdir(facies_path)
# 生成一个随机数来选择文件
file_index = random.randint(1, 32640) # 假设文件名是从1到32640
facies_img = Image.open(os.path.join(facies_path, facies_files[file_index]))
# 查找图像中所有独特的值
unique_values = np.unique(facies_img) #[0,1,2]
plt.imshow(facies_img)
plt.show()
显示的图像如下所示:
想显示自定义的颜色映射可以使用下面的代码:
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
from PIL import Image
import os
import random
import numpy as np
# 路径设置
data_dir = 'dataset'
facies_path = os.path.join(data_dir, 'faciesData')
facies_files = os.listdir(facies_path)
# 生成一个随机数来选择文件
file_index = random.randint(1, 32640) # 假设文件名是从1到32640
facies_img = Image.open(os.path.join(facies_path, facies_files[file_index]))
# 查找图像中所有独特的值
unique_values = np.unique(facies_img) #[0,1,2]
# 定义自定义颜色映射
colors = ['white', 'red', 'yellow'] # 分别为0, 1, 2指定颜色
cmap = mcolors.ListedColormap(colors)
bounds = [-1, 0.9, 1.1, 2.1] # 定义边界,0-1之间的值使用第一个颜色,1-2使用第二个,依此类推
norm = mcolors.BoundaryNorm(bounds, cmap.N)
plt.imshow(facies_img, cmap=cmap, norm=norm)
# plt.imshow(facies_img)
plt.show()
成功显示为想要的颜色
【图像处理】使用matplotlib库显示灰度图像为自定义颜色(2)的更多相关文章
- python matplotlib 中文显示参数设置
python matplotlib 中文显示参数设置 方法一:每次编写代码时进行参数设置 #coding:utf-8import matplotlib.pyplot as pltplt.rcParam ...
- (原)python中matplot中获得鼠标点击的位置及显示灰度图像
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...
- 数据分析与展示——Matplotlib库入门
Matplotlib库入门 Matplotlib库介绍 Matliotlib库是Python优秀的数据可视化第三方库. Matliotlib库的效果见:http://matplotlib.org/ga ...
- 第二周 数据分析之展示 Matplotlib库入门
Matplotlib库介绍:优秀的数据可视化第三方库 使用:Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库 ...
- numpy, matplotlib库学习笔记
Numpy库学习笔记: 1.array() 创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...
- Python的Matplotlib库简述
Matplotlib 库是 python 的数据可视化库import matplotlib.pyplot as plt 1.字符串转化为日期 unrate = pd.read_csv("un ...
- python matplotlib 中文显示乱码设置
python matplotlib 中文显示乱码设置 原因:是matplotlib库中没有中文字体.1 解决方案:1.进入C:\Anaconda64\Lib\site-packages\matplot ...
- 转:使用 python Matplotlib 库 绘图 及 相关问题
使用 python Matplotlib 库绘图 转:http://blog.csdn.net/daniel_ustc/article/details/9714163 Matplotlib ...
- NumPy Matplotlib库
NumPy - Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 ...
- Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
matplotlib图像绘制 / matplotlib image description 目录 关于matplotlib matplotlib库 补充内容 Figure和AxesSubplot的生 ...
随机推荐
- linux中如何判断一个rpm是手动安装还是通过yum安装的
现状 对于一个不熟悉的服务器或者是虽然是自己的服务器,但历史比较久远,对于上面安装了的一些软件包,我们记忆都慢慢模糊了. 我今天遇到一个情况,在安装一个工具x2openEuler时,安装失败,提示依赖 ...
- vSphere是什么,你了解么?
最近这两周都在学习VMware vSphere相关知识,昨天在做了一个项目后,VMware虚拟化之旅暂告一段落了.晚上一个人闲下来时回想了之前所学,忆起vSphere时,大脑一片空白... 我突然发现 ...
- 一个专业DBA应具备的技能
本文可以作为MySQL DBA面试官,以及候选人的双向参考 面试流程 接下来先说下我以往在做MySQL DBA面试时的过程(套路): 1.先自我介绍后,再让候选人花2-5分钟做下自我简介有不少人可能对 ...
- shared_ptr的线程安全性与再论cmu15445 project0的COW线程安全字典树
shared_ptr的线程安全性 近期在网上冲浪时看到一篇boost的文章,里面聊到了shared_ptr的线程安全性 https://www.boost.org/doc/libs/1_87_0/li ...
- 【软件】解决奥林巴斯生物显微镜软件OlyVIA提示“不支持您使用的操作系统”安装中止的问题
[软件]解决奥林巴斯生物显微镜软件OlyVIA提示"不支持您使用的操作系统"安装中止的问题 零.问题 资源在文末 问题如下,从奥林巴斯生物显微镜软件官网下载地址:https://l ...
- sql server2005的死锁
select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tra ...
- Text Bg ContentSizeFitter的另类控制
using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [RequireComponent(typeof(Co ...
- 如何使用Nacos作为配置中心统一管理配置
如何使用Nacos作为配置中心统一管理配置 1).引入依赖, <dependency> <groupId>com.alibaba.cloud</groupId> & ...
- 搭建zookeeper集群常见的报错原因(总结)
N.1 报错:Connection broken for id 2, my id = 3, error = java.io.IOException: Channel eof ... 原因:server ...
- Windows系统优化 3-清理预安装软件
事件起因: 经过我们上次 Windows系统优化 2-系统设置优化 之后,现在电脑已经基本上可以使用,不过对于有强迫症的我来说还差了一步,那就是系统预安装的软件: 对于我们刚入手的电脑你是否有 这些 ...