问题描述
我是图像处理和Opencv的新手.我需要对灰度图像进行阈值处理.该图像包含0到1350之间的所有值,我想保留所有大于100的值.我在opencv中发现了此功能:
I am new in image processing and opencv. I need to threshold my gray scale image. The image contains all value between 0 to 1350 and I want to keep all values which are more than 100. I found this function in opencv:
cv::threshold( Src1, Last, 100, max_BINARY_value,3);
我不知道应该在max_BINARY_value部分中写什么,我也不知道最后一项是否被正确选择.
I do not know what should I write in the max_BINARY_value part and aslo I do not know if the last item is selected correctly or not.
谢谢.
推荐答案
C++: double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
您正确选择了Src1
,Last
和阈值100
.maxval
仅在使用THRESH_BINARY
或THRESH_BINARY_INV
作为类型时使用.
You selected your Src1
, Last
and your Threshold 100
correctly.maxval
is only used if you use THRESH_BINARY
or THRESH_BINARY_INV
as type.
您要使用的是cv::THRESH_TOZERO
作为类型.这会将所有值保持在阈值之上,并将所有其他值设置为零.
What you want to use is cv::THRESH_TOZERO
as type. Ths keeps all values above your Threshold and sets all other Values to zero.
请记住,始终最好使用此参数的名称"而不是它们的整数表示形式.如果您在几周内通读代码,cv::THRESH_TOZERO
会说出您需要的所有内容,而3
只是一个数字.
Please keep in mind that it is alway better to use the "Names" of this Parameters instead of their integer representation. If you read through your code in a few weeks cv::THRESH_TOZERO
says everything you need, where 3
is only a number.
这篇关于opencv/c ++中适当的阈值功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!