JavaCV:将位掩码插入彩色图像的最佳方法

时间:2017-09-04 13:03:36

标签: opencv javacv

我有一个二进制掩码,由opencv创建(8位opencv_core.Mat来自org.bytedeco.javacpp,0表示背景,255表示对象),还有一些其他矩阵"源",颜色或灰度,任何深度(8位,16位,浮点......)

我需要"画"源矩阵上的掩模为白色:来自掩模的像素255必须变为"白色"在源矩阵上。

在JAVA中执行此操作的最简单方法是什么?

我执行以下操作:


    if (source.depth() != opencv_core.CV_8U) {
        mask.convertTo(mask, source.depth(), OTools.maxPossibleValue(source) / 255.0, 0.0);
    }
    if (source.channels() > 1) {
        opencv_imgproc.cvtColor(mask, mask, opencv_imgproc.CV_GRAY2BGR, source.channels());
    }
    opencv_core.bitwise_or(source, mask, mask);

(对于CV_8U,maxPossibleValue返回255,对于CV_16U,则返回65535,对于浮点数,返回1.0)。但我希望,有更明显和更普遍的方式。例如,如果来源不是BGR,而是BGRA或其他颜色模型会是什么?

0 个答案:

没有答案