C++ C++;opencv自定义阈值

C++ C++;opencv自定义阈值,c++,opencv,C++,Opencv,我需要图像的自定义阈值,其中像素值小于thr,我需要保留原始值,但如果像素大于thr,则它应该与thr的值相同 我在opencv中检查了阈值方法,但它返回给我白色,我不想要这个,我需要与上面解释的相同的东西 提前谢谢 Opencv为您提供了一些基本的阈值操作,我们可以实现5种阈值操作: 阈值二进制文件: 如果像素src(x,y)的强度高于thresh,则新像素强度设置为MaxVal。否则,像素设置为0 阈值二进制,反转: 如果像素src(x,y)的强度高于thresh,则新像素强度设置为

我需要图像的自定义阈值,其中像素值小于thr,我需要保留原始值,但如果像素大于thr,则它应该与thr的值相同

我在opencv中检查了阈值方法,但它返回给我白色,我不想要这个,我需要与上面解释的相同的东西


提前谢谢

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

阈值二进制文件:

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

阈值二进制,反转:

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

截断:

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

阈值为零:

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

阈值为零,反转:

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

因此您可以使用
截断
类型执行此操作,请检查以下内容:

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).
例如:

/*  threshold_type
     0: Binary
     1: Binary Inverted
     2: Threshold Truncated
     3: Threshold to Zero
     4: Threshold to Zero Inverted
   */
  threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );
//In your case threshold_type = 2

参考:

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

阈值二进制文件:

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

阈值二进制,反转:

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

截断:

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

阈值为零:

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

阈值为零,反转:

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

因此您可以使用
截断
类型执行此操作,请检查以下内容:

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).
例如:

/*  threshold_type
     0: Binary
     1: Binary Inverted
     2: Threshold Truncated
     3: Threshold to Zero
     4: Threshold to Zero Inverted
   */
  threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );
//In your case threshold_type = 2

ref:

尝试参考-搜索“openCV阈值”的第一个结果直接将我带到@Hazem从…image.setTo(thr,img>thr)提取这些图像的页面;如果img是单通道图像,请尝试参考-搜索“openCV threshold”的第一个结果将我直接带到@Hazem从…image.setTo(thr,img>thr)提取这些图像的页面;如果img是单通道图像