C ++ opencv自定义阈值

时间:2015-12-08 07:49:05

标签: c++ opencv

我需要一个自定义的图像阈值,其中像素的值小于 thr 我需要保留原始值,但是如果像素大于 thr 那么它应该是 thr 的相同值。

我在opencv中检查了阈值方法,但是它给了我白色,我不想要这个,我需要和上面解释的一样。

提前致谢。

1 个答案:

答案 0 :(得分:4)

Opencv为您提供了一些基本的阈值操作,我们可以实现5种类型的阈值操作:

阈值二进制:

enter image description here

enter image description here

如果像素src(x,y)的强度高于阈值,则将新像素强度设置为MaxVal。否则,像素设置为0.

阈值二进制,倒置:

enter image description here

enter image description here

如果像素src(x,y)的强度高于thresh,则新的像素强度设置为0.否则,将其设置为MaxVal。

<强>截断:

enter image description here

enter image description here

像素的最大强度值是thresh,如果src(x,y)更大,则其值被截断。

阈值为零:

enter image description here

enter image description here

如果src(x,y)低于thresh,则新的像素值将设置为0.

阈值为零,倒置:

enter image description here

enter image description here

如果src(x,y)大于thresh,则新的像素值将设置为0.

所以你可以使用-(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; } 类型执行此操作,请检查:

Truncated

示例:

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

src – input array (single-channel, 8-bit or 32-bit floating point).
dst – output array of the same size and type as src.
thresh – threshold value.
maxval – maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
type – thresholding type (see the details below).

参考:1 2