【发布时间】:2013-06-04 08:19:49
【问题描述】:
我知道这很简单,但我不能让它在 Opencv 中工作。我有两张相同大小的图像,一张是 RGB 的,另一张是黑白的。黑白图像是在 Opencv 中经过一些变换后得到的。现在我想将黑白图像映射到 RGB 图像,并且只保留与黑白图像中的白色像素对应的像素。黑色被简单地丢弃。
在 C# 中它很容易,但由于我使用的是 c++ opencv,所以我想在 openCV 中进行。我该怎么做?
在c#中是这样的:
for(i = 0; i < image.lenght; i+=4)
{
if(img_bw != 255)
image[i] = 0;image[i+1] = 0;image[i+2] = 0;
}
【问题讨论】:
-
查看 at 运算符以访问 Mat 元素 link
-
您可以使用提供逻辑“与”功能的库。我不知道 OpenCV 是否会这样做,但我知道 IPP 会。使用“and”将为您节省 for 循环。 RGB && BW == what_you_want。但是,如果您选择这样做,则必须小心图像格式。