在下面的代码中,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. JMeter 定义 User 随机数变量无效

    Jmeter 定义 User 随机数变量无效 随机数方法: RandomString10 ${__RandomString(10,ABCDEFGHIJKLMNOPQRSTUVWXYZ)} Random ...

  2. go语言中iota和左移<< 右移<<

    iota 特殊常量 在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1 p ...

  3. Django实战项目-学习任务系统-需求说明

    一,需求说明 在我最近的阅读中,我深深被一些关于智能或系统的小说吸引.这些小说的主角意外获得某种神秘的智能或系统,然后通过完成系统发布的各种任务,逐渐提升自己的知识和能力.即使是普通的屌丝,也能在系统 ...

  4. Django项目如何配置日志文件信息

    1.以dict的方式配置在settings.py中 # 日志文件简单配置 ''' LOGGING = { "version": 1, "disable_existing_ ...

  5. DVWA靶场学习

    暴力破解Brute Force low 输入密码就正常抓包放字典破解得了 uploading-image-528180.png medium 同样的操作发现响应速度变慢了,但是还是能暴力破解,不多说了 ...

  6. nginx同时使用(http)80和(https)443端口详解

    server { listen 443 ssl; #监听https 443时需加ssl server_name ; #你的域名 ssl on; ssl_certificate ; #证书路径 ssl_ ...

  7. wait、notify、notifyAll的理解与使用

    基础知识 Java 中,可以通过配合调用 Object 对象的 wait() 方法和 notify() 方法或 notifyAll() 方法来实现线程间的通信. 在线程中调用 wait() 方法,将阻 ...

  8. 开源姿势识别 Demo

    最近项目中要用到姿势识别,调研了 BlazePose. MoveNet 等模型,以下是一些详细的对比. 包括 mediapipe 和 tfjs 等运行环境,webgl,webgpu,wasm 都做了尝 ...

  9. useDeferredValue的作用

    前言 useDeferredValue是react18新增的一个用于优化性能的一个hook,它的作用是延迟获取一个值,实际开发中的常规用法与我们之前所用的防抖和节流很相似,但是也有一定的区别.本篇文章 ...

  10. zk源码—4.会话的实现原理

    大纲 1.创建会话 (1)客户端的会话状态 (2)服务端的会话创建 (3)会话ID的初始化实现 (4)设置的会话超时时间没生效的原因 2.分桶策略和会话管理 (1)分桶策略和过期队列 (2)会话激活 ...