python - 如何根据python中的地图将rgb值转换为整数
问题描述
我有一个大的 RGB 图像,我想根据地图将每个 RGB 值转换为 index_id。我正在这样做,但速度很慢。有更快的方法吗?
NewDic = OrderedDict([
((0,0,0), 0),
((20,20,20), 1),
((100,20,3),2) ])
ann = Image.open(img_rgb)
ann = np.asarray(ann)
zeroann = np.zeros((ann.shape[0],ann.shape[1]))
for x in range(ann.shape[0]):
for y in range(ann.shape[1]):
A = ann[x,y,:]
zeroann[x,y] = NewDic[tuple(A)]
解决方案
您是否需要特定映射,否则您可以尝试直接映射。
ann = Image.open(img_rgb)
ann = np.asarray(ann)
# define newann as:
newoann = ann[:, :, 0] + ann[:, :, 1] * 256 + ann[:, :, 2] * 256**2
# Then do the mapping
这将导致每个 RGB 值的唯一索引。
推荐阅读
- reactjs - React Native:当您离开一个组件时,该组件是否会被卸载?
- mkdocs - Mkdocs材料水平菜单不起作用
- python - 这算不算“数据泄露”?
- operating-system - 寻找有关名为 WhatDoesItDo 的编程语言的信息
- go - 通过 Arango DB 中的不同集合进行查询并在路径边缘应用过滤器
- ruby - 在 WSL 上使用 rbenv 安装 ruby 时出现错误“block in install_default_gem”
- java - 在反应器中流动多个对象的有效/正确方法是什么
- javascript - 如何检查两个对象(或数组、映射、集合等)是否具有与另一个相同的值?
- c# - 使用许多不同的配置运行相同的测试
- python-3.x - PyQt5:QStackedWidget 背景在动画期间可见/白色