OpenCV将一种颜色转换为另一种颜色

时间:2013-08-13 14:27:40

标签: c++ opencv colors

我有一张灰度图像 我想将所有白色像素(纯白色 - 255)转换为黑色(0) 只有那些颜色,而不是所有的灰度 我怎样才能做到这一点? 谢谢! 罗恩

2 个答案:

答案 0 :(得分:6)

您可以执行以下操作。

  1. 使用inRange()对图像进行阈值处理。

    Mat image;  // your original image
    Mat mask;
    void inRange(image, Scalar(255), Scalar(255), mask)
    

    输出mask将是一个二进制掩码,如果image中的对应像素等于255(即如果像素值介于255和255之间,则边界为包括在内)。

  2. 使用copyTo()black_image(您想要的替代颜色)复制到原始imagemask

    Mat black_image(image.size(), CV_8U, Scalar(0));  // all zeros image
    black_image.copyTo(image, mask);
    

答案 1 :(得分:1)

使用cvThreshold,请参见最后一种情况“阈值为零,倒置”:http://docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html

将阈值设置为254,我认为这样可以解决您的问题。