【opencv练习18 - 基本阈值操作】

/*****************************************************
    测试程序 【基本阈值操作】
    时间:2016年8月26日
*****************************************************/

/// Global variables

int threshold_value = 0;        //阈值变量
int threshold_type = 3;         //阈值类型
int const max_value = 255;      //像素最大值
int const max_type = 4;         //最大类型编号
int const max_BINARY_value = 255;   //二值化最大值

Mat src, src_gray, dst;         

const char* window_name = "Threshold Demo";
const char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted";
const char* trackbar_value = "Value";

/// Function headers
void Threshold_Demo( int, void* );

int main(void)
{
  /// Load an image
  src = imread("YY01.jpg" , 1 );

  /// Convert the image to Gray
  cvtColor( src, src_gray, COLOR_RGB2GRAY );

  /// Create a window to display results
  namedWindow( window_name, WINDOW_AUTOSIZE );

  /// Create Trackbar to choose type of Threshold
  createTrackbar( trackbar_type,
                  window_name, &threshold_type,
                  max_type, Threshold_Demo );

  createTrackbar( trackbar_value,
                  window_name, &threshold_value,
                  max_value, Threshold_Demo );

  /// Call the function to initialize
  Threshold_Demo( 0, 0 );

  /// Wait until user finishes program
  for(;;)
    {
      int c;
      c = waitKey( 20 );
      if( (char)c == 27 ){ break; }
    }

}


//【回调函数】
void Threshold_Demo( int, void* )
{
  //   0: Binary                //二值化
  //   1: Binary Inverted       //反向二值化
  //   2: Threshold Truncated   //超阈值截断
  //   3: Threshold to Zero             //低于阈值,置0
  //   4: Threshold to Zero Inverted    //高于阈值,置0


  //参数,sec,dst,阈值,最大阈值(二值常用),阈值类型
  threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );

  imshow( window_name, dst );
}

二值化
二值化

反向二值化
这里写图片描述

超阈值截断
这里写图片描述

低于阈值,置0
这里写图片描述

高于阈值,置0
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值