【发布时间】:2014-12-28 12:24:21
【问题描述】:
我在im 中有彩色图像,我想使用 vec3b 使用以下代码获取 3 通道图像的像素值
for (int i = 0; i < im.rows; i++)
{
for (int j = 0; j < im.cols; j++)
{
for (int k = 0; k < nChannels; k++)
{
zay[k] = im.at<Vec3b>(i, j)[k]; //get the pixel value and assign to new vec3b variable zay
}
}
}
之后,我想将下面的 mat 3x3 过滤器与 zay 中的 vec3b 相乘
Filter= (Mat_<double>(3, 3) << 0, 0, 0,
0, 1, 0,
0, 0, 0);
如何将 vec3b 转换为 mat 矩阵,以便我可以乘以 mat 过滤器? vec3b 是一个 3x1 的数组? 谢谢
【问题讨论】:
-
我猜手动计算会更容易更快(可能在宏/函数中): Vec3b temp; temp[0] = zay[0] * Filter.at
(0,0) + ... -
但我想转换为 mat,因为我需要灵活的矩阵。所以我可以轻松操作ab和ba