image - 通过整个目录将 RGB 值重新排列为 GRB、GBR、BRG、BGR 和 RBG
问题描述
我有一个 CNN 的图像目录。我希望能够以不同的顺序重新排列每个波段,以帮助更好地训练我的模型以使其能够识别我的对象。到目前为止,我有一些使用 cv2 的代码。它正在分离乐队,但我在重新安排乐队时遇到了麻烦。
import cv2
import numpy
img = cv2.imread("IMG_4540.jpg")
g,b,r = cv2.split(img)
cv2.imwrite('green_channel.jpg', g)
如果可能的话,我希望有 6 个单独的图像,它们都具有来自一个单一图像的不同波段组合。
解决方案
您可以使用 numpy 的索引功能形成所有重新排序。
import numpy as np
from itertools import permutations
# first generate all sets of rearrangements you'd like to make..
orderings = [p for p in permutations(np.arange(3)) if p!=(0,1,2)]
# [(0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
# rbg, brg, and so on.
# then reorder along axis=-1 using these. (0,1,2) --> (0,2,1) and so on.
for order in orderings:
reordered = im[...,order]
# then save each an appropriate filename
cv2.imsave('filename.jpg', reordered)
del reordered, order
推荐阅读
- powerbi - 如何使用过滤器嵌入公共报告?
- angular - Nativescript 图表缩放未在事件中返回缩放比例值
- python - 是否有 SciPy 方法来自动裁剪图像,即从 2d `numpy.ndarray` 中修剪零?
- vue.js - 为什么新插入的带有 router-link 标签的组件代替 v-for 列表中特定索引处的单个项目会出错?
- angular - FormArray 中的嵌套 FormGroups 不起作用
- spring-boot - 无法获得正确的 GET 响应
- python - 使用 Python 将 .xlsx 文件转换为 .xls 而不会丢失数据
- azure-iot-hub - 如何将图像输入到 Azure IOT Hub?
- python - python bokeh中的xaxis时间戳格式
- c - linux下如何定位导致应用接收SIGTTIN的代码位置?