【图像处理】使用matplotlib库显示灰度图像为自定义颜色(2)

news/2024/9/23 20:26:11

在下面的代码中,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()

显示的图像如下所示:
image


想显示自定义的颜色映射可以使用下面的代码:

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()

image
成功显示为想要的颜色

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

无需手动操作:利用 Playwright 自动上传文件

前言 Playwright 是一个由 Microsoft 开发的自动化测试工具,它提供了跨浏览器的自动化测试能力,包括 Chrome、Firefox 和 Safari。除了测试之外,Playwright 还可以用于执行浏览器操作,例如模拟用户行为来实现文件上传功能。在本文中,我们将使用 Playwright 和 Python 实现…

QT开发工具QTCreator设置格式美化,代码补全提示

工欲善其事,必先利其器:下面介绍如何配置格式美化功能 (1)先下载:astyle.exe (2)编辑astyle.astylerc点击Apply->OK(3)帮助 重启软件:测试效果 格式化化后: 4556

js播放背景音乐失败处理

<script>const music = new Audio(med/CanonInD.mp3);music.loop =true;document.addEventListener("DOMContentLoaded", function(event) {console.log("页面加载完毕");if (music.paused) {//console.log(音频当前没有播放);music.play(); /*可能报…

老黄终于不穿皮衣了,分享一个AI换装AI试衣软件!

用AI实现在线试衣,或者在线换装,这不是一个新概念,肯定有人这么想过,但并不是所有人能都能轻松做到啊! 今天就来分享一个人人都可以实现的方法,而且是那种傻瓜式的不用付钱的那种,甚至可以把软件在直接装在本地电脑上运行,无拘无束的玩耍。下面就先来看几个例子。让皮…

模拟手机设备:使用 Playwright 实现移动端自动化测试

前言 在今天的 Web 开发中,移动设备已经成为用户访问网站的主要方式之一。因此,确保网站在移动设备上的正确显示和功能正常运行至关重要。Playwright 是一个强大的自动化测试工具,可以帮助开发人员模拟各种移动设备,并进行自动化测试。本文将深入介绍如何使用 Python 编写代…

.NET周刊【5月第1期 2024-05-05】

国内文章 一个开源轻量级的C#代码格式化工具(支持VS和VS Code) https://www.cnblogs.com/Can-daydayup/p/18164905 CSharpier是一个开源、免费的C#代码格式化工具,特点是轻量级且依赖Roslyn引擎重构代码格式。支持的IDE包括Visual Studio (2019与2022) 和 Visual Studio Cod…

Go:json-patch库讲解与应用

Go:json-patch库讲解与应用 原创 王义杰 运维开发王义杰 2024-05-13 21:36 广东 听全文1. 简介 json-patch 是一个 Go 语言的库,用于处理 JSON 文档的修改。它实现了 JSON Patch 标准 (RFC 6902),允许对 JSON 文档进行部分更新,而无需重写整个文档。2. 功能与特性操作支持:…

SSH连接远程仓库

【1】生成密钥文件 在任意位置打开cmd或者gitbash ssh-keygen -t ed25519 -C "g3230069@gmail.com"在用户目录下的.ssh就会自动生成密钥,打开pub结尾的,复制其内容【2】把公钥配置在gitee账号上【3】删除之前配置的origin git remote remove origin【4】换成ssh地址…