《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
前言
想查看打印出分割图像的Mask里面有多少个不同的数值。

步骤
要查询一个三维 Numpy 数组(表示 RGB 图像)中的不同 RGB 点,并打印出它们,您可以遵循以下步骤:
- 展开 RGB 值:将三维数组转换为一维数组,以便对每个像素点的 RGB 值进行单独处理。
- 使用集合(set)去重:将展开后的 RGB值放入一个 Python 集合中,自动去除重复项。
- 打印不同 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 格式化输出,使得结果更易读。
如果文章对你有帮助,麻烦动动你的小手,给点个赞,鼓励一下吧,谢谢~~~
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!
AI与深度学习实战:利用YOLOv8实现RGB图像中的不同像素检测,
本文介绍了如何使用Python和Numpy处理RGB图像,通过YOLOv8和集合去重技术,提取并打印出图像中不同RGB点。作者分享了从三维数组到一维处理,以及去重和打印不同RGB值的详细步骤。

被折叠的 条评论
为什么被折叠?



