我有一张灰度图像 我想将所有白色像素(纯白色 - 255)转换为黑色(0) 只有那些颜色,而不是所有的灰度 我怎样才能做到这一点? 谢谢! 罗恩
答案 0 :(得分:6)
您可以执行以下操作。
使用inRange()
对图像进行阈值处理。
Mat image; // your original image
Mat mask;
void inRange(image, Scalar(255), Scalar(255), mask)
输出mask
将是一个二进制掩码,如果image
中的对应像素等于255(即如果像素值介于255和255之间,则边界为包括在内)。
使用copyTo()
将black_image
(您想要的替代颜色)复制到原始image
到mask
。
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,我认为这样可以解决您的问题。