opencv - 如何将 openCV 图像乘以 3 x 3 矩阵?
问题描述
openCV hxw RGB 图像是一个形状为 (h, w, 3) 的数组。什么 numpy 矩阵运算将每个 [BGR] 像素值乘以 3 x 3 矩阵 M?图像 A 和矩阵 M 的期望结果 S 由下式给出
S = np.empty_like(A)
h, w, c = A.shape
for i in range(h):
for j in range(w):
BGR = A[i, j]
for k in range(c):
S[i, j, k] = M[k][0] * BGR[0] + M[k][1] * BGR[1] + M[k][2] * BGR[2]
解决方案
这是你想要的?
import numpy as np
A = np.random.rand(10, 5, 3)
M = np.random.rand(3, 3)
S = np.einsum("ijk,ka->ija", A, M)
print(S.shape)
给(10, 5, 3)
推荐阅读
- amazon-web-services - AWS弹性beantalk上的postgraphile出现408超时错误
- apache - docker & docker-compose - Apache 镜像,带有在 SSL 证书、自签名、Let's Encryp 或禁用之间切换的选项
- sql-server - 近乎实时地将数据从 sql 表摄取到弹性索引
- linux - 当我把它 `-- ` 作为参数时,我的行为很奇怪
- c++ - BFS for Maze C++ Segmentation Fault 错误
- php - 是否可以通过 workfront API 检索财务数据(findat)?
- javascript - 发出Ajax请求时如何只等待1秒,但等待时间后不取消请求?
- rsync - 如何从多个文件夹中同步特定文件
- ruby-on-rails - update_all 如何在不引发异常的情况下失败?
- c++ - 如何在 OpenCV 处理期间保持窗口打开?