python - Pytorch 变换中像素的部分反转
问题描述
我想随机反转图像的一些像素,这就是我所说的“部分反转”。使用两个 for 循环绝对可行,但我正在寻找更快的操作,因为此操作将应用于数据集中的大量图像。我在PIL文档中没有找到任何操作。我附上了一个示例图像作为参考,假设它具有所有通道 (RGB)。任何帮助,将不胜感激。
解决方案
你会考虑其他解决方案PIL
吗?使用 . 操作像素非常容易numpy
。要反转,只需从 255 中减去数组值。
import tensorflow as tf
import torch
import matplotlib.pyplot as plt
(x, _), (_, _) = tf.keras.datasets.mnist.load_data()
x = x[0]
x = torch.cat([x[:14, :], 255 - x[14:, :]])
plt.imshow(x.numpy(), cmap='Greys')
您可以像这样在转换中调用它:
torchvision.transforms.Lambda(lambda x: torch.cat([x[:14, :], 255 - x[14:, :]]))
推荐阅读
- python - 无法在 python3 中导入 pymysql 模块
- excel - 将 Excel 单元格中的文本作为另一个单元格中的公式运行
- date - 如何计算结束日期
- ios - 对许多开发者使用相同的“Bundle ID”
- python - 为 Python 构建共享库 C++ 时出现分段错误
- python - 未知长度字符串的 C++ 数组,其行为类似于 Python 字符串列表
- c++ - 潜在的数据竞赛是数据竞赛吗?
- r - 范围值和 geom_bar 的问题
- amcharts4 - 设置 AmChart4 XYCursor 的 X 和 Y 标签的字体大小和颜色
- android - 除了具有更高优先级内存需求的应用程序之外,还有什么可以破坏系统的活动?