2

我有一个灰度图像我想将所有白色像素(纯白色 - 255)转换为黑色(0)只有那些颜色,而不是所有灰度我该怎么做?谢谢!罗恩

4

2 回答 2

6

您可以执行以下操作。

  1. 使用inRange().

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

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

  2. 通过使用将black_image(您想要的替代颜色)复制到您的原件中。imagemaskcopyTo()

    Mat black_image(image.size(), CV_8U, Scalar(0));  // all zeros image
    black_image.copyTo(image, mask);
    
于 2013-08-13T14:55:42.620 回答
1

使用 cvThreshold,在此处查看最后一种情况“阈值为零,倒置”:http: //docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html

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

于 2013-08-13T14:46:10.870 回答