我喜欢在最大值和最小值范围内对图像进行阈值处理,并使用255填充剩余的图像,以获得该范围之外的像素值。我在OpenCV文档here中找不到这样的阈值。 感谢
答案 0 :(得分:14)
inRange(src, lowerBound, upperBound, dst);
bitwise_not(src, src);
答案 1 :(得分:6)
基本:
threshold(src, dst, threshold value, max value, threshold type);
,其中
src_gray: Our input image
dst: Destination (output) image
threshold_value: The thresh value with respect to which the thresholding operation is made
max_BINARY_value: The value used with the Binary thresholding operations (to set the chosen pixels)
threshold_type: One of the 5 thresholding operations.
所以,例如,
threshold(image, fImage, 125, 255, cv::THRESH_BINARY);
表示低于125的每个值都将设置为零,高于125表示值为255。
如果您要查找的是具有特定范围,例如50到150,我建议您进行for循环,并自行检查和编辑像素。这很简单。看看我的这个c ++代码:
for (int i=0; i< image.rows; i++)
{
for (int j=0; j< image.cols; j++)
{
int editValue=image.at<uchar>(i,j);
if((editValue>50)&&(editValue<150)) //check whether value is within range.
{
image.at<uchar>(i,j)=255;
}
else
{
image.at<uchar>(i,j)=0;
}
}
}
希望我解决了你的问题。干杯(:如果您需要更多帮助,请发表评论。