在下面的代码中,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)的更多相关文章

  1. python matplotlib 中文显示参数设置

    python matplotlib 中文显示参数设置 方法一:每次编写代码时进行参数设置 #coding:utf-8import matplotlib.pyplot as pltplt.rcParam ...

  2. (原)python中matplot中获得鼠标点击的位置及显示灰度图像

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...

  3. 数据分析与展示——Matplotlib库入门

    Matplotlib库入门 Matplotlib库介绍 Matliotlib库是Python优秀的数据可视化第三方库. Matliotlib库的效果见:http://matplotlib.org/ga ...

  4. 第二周 数据分析之展示 Matplotlib库入门

    Matplotlib库介绍:优秀的数据可视化第三方库 使用:Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库 ...

  5. numpy, matplotlib库学习笔记

    Numpy库学习笔记: 1.array()   创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...

  6. Python的Matplotlib库简述

    Matplotlib 库是 python 的数据可视化库import matplotlib.pyplot as plt 1.字符串转化为日期 unrate = pd.read_csv("un ...

  7. python matplotlib 中文显示乱码设置

    python matplotlib 中文显示乱码设置 原因:是matplotlib库中没有中文字体.1 解决方案:1.进入C:\Anaconda64\Lib\site-packages\matplot ...

  8. 转:使用 python Matplotlib 库 绘图 及 相关问题

     使用 python Matplotlib 库绘图      转:http://blog.csdn.net/daniel_ustc/article/details/9714163 Matplotlib ...

  9. NumPy Matplotlib库

    NumPy - Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 ...

  10. Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结

    matplotlib图像绘制 / matplotlib image description  目录 关于matplotlib matplotlib库 补充内容 Figure和AxesSubplot的生 ...

随机推荐

  1. Ubuntu下如何管理多个ssh密钥

    Ubuntu下如何管理多个ssh密钥 前言 ‍ 我一直在逃避这个问题,误以为我能够单纯地用一个 ssh 走天下. 好吧,现实是我不得不管理多个 ssh 做,那就写个博客总结一下吧. 查阅后发现前人已经 ...

  2. tsconfig.json 报错问题解决

    tsconfig.json 报错问题解决 报错如图所示: 创建tsconfig.json配置文件时,VSCode会自动检测当前项目当中是否有ts文件,若没有则报错,提示用户需要创建一个ts文件后,再去 ...

  3. 如何让tcxGrid左边显示序号

    第一步: 设置cxgrid的属性, OptionsView.Indicator = True 第二步: 写OnCustomDrawIndicatorCell方法 procedure TForm1.cx ...

  4. MQ 如何保证数据一致性?

    前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成"已发货". 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一样消失了. 这个Bug让我明 ...

  5. IE 条件注释

    参考文档 IE6 IE7 IE8 IE9 IE10 Css hack及IE条件注释法 IE的有条件注释判定IE版本详解(附实例代码)

  6. 再说cxGrid主从表相关

    查了那么多叽叽歪歪的资料:masterView的key,从表key和detailkey以及从表需要排序. 注意设定参数后,最后active数据集.这里有个顺序问题,否则会增加随机新 回到原点看随机he ...

  7. Jenkins pipeline之声明式的jenkinsfile

    Jenkins pipeline之声明式的jenkinsfile 内置的关键字 pipeline : 是pipeline的跟节点 agent: 定义piple使用哪个账号在哪个机器上执行 post: ...

  8. 🎀B站-网页优化插件BewlyBewly

    简介 一个开源的B站网页优化浏览器插件,对B站网页进行了调整和优化,页面更具视觉吸引力和用户友好性. 源码 https://github.com/BewlyBewly/BewlyBewly 支持 插件 ...

  9. 小结.NET 9性能优化黑科技:从内存管理到Web性能的最全指南

    引言:性能优化的重要性与 .NET 9 的性能提升 ❝ 性能优化不仅关乎代码执行效率,还直接影响用户满意度和系统可扩展性.例如,一个响应缓慢的 Web 应用可能导致用户流失,而一个内存占用过高的服务可 ...

  10. 20241105,LeetCode 每日一题,用 Go 实现两数之和的非暴力解法

    题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案,并且你不能 ...