本文介绍了opencv/c ++中适当的阈值功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是图像处理和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.

谢谢.

推荐答案

要使用您使用的cv :: threshold

C++: double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)

您正确选择了Src1Last和阈值100.maxval仅在使用THRESH_BINARYTHRESH_BINARY_INV作为类型时使用.

You selected your Src1, Last and your Threshold 100correctly.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 ++中适当的阈值功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-26 20:00