如何查询RGB图像的三维numpy数组中有多少个不同的RGB点,并打印具体数值?

简介: 如何查询RGB图像的三维numpy数组中有多少个不同的RGB点,并打印具体数值?

前言


想查看打印出分割图像的Mask里面有多少个不同的数值。



步骤


要查询一个三维 Numpy 数组(表示 RGB 图像)中的不同 RGB 点,并打印出它们,您可以遵循以下步骤:

  1. 展开 RGB 值:将三维数组转换为一维数组,以便对每个像素点的 RGB 值进行单独处理。
  2. 使用集合(set)去重:将展开后的 RGB值放入一个 Python 集合中,自动去除重复项。
  3. 打印不同 RGB 点:遍历集合,打印出每个不同的 RGB 点


具体代码


import numpy as np
# 假设您有一个三维 Numpy 数组,代表 RGB 图像
rgb_image = np.random.randint(0, 256, size=(height, width, 3), dtype=np.uint8)
# Step 1: 展开 RGB 值
flat_rgb_values = rgb_image.reshape(-1, 3)
# Step 2: 使用集合去重
unique_rgb_values = set(tuple(rgb) for rgb in flat_rgb_values)
# Step 3: 打印不同 RGB 点
for rgb in unique_rgb_values:
    print(f"{rgb}: ({rgb[0]}, {rgb[1]}, {rgb[2]})


打印结果:

(0, 0, 128), (0, 0, 0), (0, 128, 0), (0, 128, 128)


代码解释如下:


这段代码首先创建一个随机生成的 RGB 图像作为示例。接着,使用 reshape(-1, 3) 将三维数组展平为二维数组,每一行代表一个像素点的 RGB 值。然后,将这些 RGB 值转换为元组,并放入一个集合中进行去重。最后,遍历集合并打印出每个唯一的 RGB 点。


注意,这里使用 tuple(rgb) 将 Numpy 数组的每一行(即一个 RGB 值)转换为元组,因为集合要求元素可哈希,而 Numpy 数组本身不可哈希。此外,打印时使用 f-string 格式化输出,使得结果更易读。

相关文章
|
6月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
532 0
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
654 4
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
833 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
318 1
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
316 2
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
566 10
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
537 4
|
机器学习/深度学习 并行计算 调度
CuPy:将 NumPy 数组调度到 GPU 上运行
CuPy:将 NumPy 数组调度到 GPU 上运行
720 1
|
API Python
Numpy 数组的一些集合操作
Numpy 数组的一些集合操作
256 0
|
编译器 Linux API
基于类型化 memoryview 让 Numpy 数组和 C 数组共享内存
基于类型化 memoryview 让 Numpy 数组和 C 数组共享内存
278 0