python - 蟒蛇 | Numpy 数组图像转换
问题描述
我有一个形状为(1000, 50, 100, 3)
( class 'numpy.ndarray'
) 的 Numpy 图像数组,其中包含 1000 个图像 RGB(高度 = 50,宽度 = 100,通道 = 3)。我想首先将RGB
值转换为YUV
值并重新调整它们以获得yuv
值。下面给出了逐像素转换器的原型实现。
我的问题:有没有一种简单的方法可以进行这种转换?
def yuv(_pixel):
R, G, B = _pixel[0], _pixel[1], _pixel[2]
Y = 0.299 * R + 0.587 * G + 0.114 * B
y = Y / 127.5 - 1
u = (0.493 * (B - Y)) / 127.5 - 1
v = (0.887 * (R - Y)) / 127.5 - 1
return np.array([y, u, v])
解决方案
你调查过numpy.apply_along_axis
吗?
你可以这样做:
images_yuv = np.apply_along_axis( yuv, -1, images_rgb)
编辑:混淆了参数的顺序
推荐阅读
- java - 线程“主”java.lang.RuntimeException 中的异常:等待 http://localhost:22198/healthz 在 20015 毫秒后可用时超时
- node.js - __dirname 在 nodejs 的打字稿中
- python - 为什么 pynput.mouse.Controller 的导入方式很重要?
- android - 无法从存储库中观察片段中的 LiveData
- assembly - 使用 IN 指令使 x86 程序崩溃
- excel - Private Sub Worksheet_Change VBA 代码合并问题
- androidx - Navigation 组件是否支持 Dialog Fragments 的动画?
- php - WP REST API:如何通过自定义插件使用 WordPress 更改每页的最大项目数?
- angularjs - angularjs NgTable ng-repeat groupby 显示/隐藏
- android - 如何使用 CMake 将 FreeType 导入我的 Android Studio NDK 项目