• OpenCV 基本的阈值操作


     1 #include "opencv2/imgproc/imgproc.hpp"
     2 #include "opencv2/highgui/highgui.hpp"
     3 #include <stdlib.h>
     4 #include <stdio.h>
     5 
     6 using namespace cv;
     7 
     8 /// 全局变量定义及赋值
     9 
    10 int threshold_value = 0;
    11 int threshold_type = 3;;
    12 int const max_value = 255;
    13 int const max_type = 4;
    14 int const max_BINARY_value = 255;
    15 
    16 Mat src, src_gray, dst;
    17 char* window_name = "Threshold Demo";
    18 
    19 char* trackbar_type = "Type: 
     0: Binary 
     1: Binary Inverted 
     2: Truncate 
     3: To Zero 
     4: To Zero Inverted";
    20 char* trackbar_value = "Value";
    21 
    22 /// 自定义函数声明
    23 void Threshold_Demo( int, void* );
    24 
    25 /**
    26  * @主函数
    27  */
    28 int main( int argc, char** argv )
    29 {
    30   /// 读取一副图片,不改变图片本身的颜色类型(该读取方式为DOS运行模式)
    31   src = imread( argv[1], 1 );
    32 
    33   /// 将图片转换成灰度图片
    34   cvtColor( src, src_gray, CV_RGB2GRAY );
    35 
    36   /// 创建一个窗口显示图片
    37   namedWindow( window_name, CV_WINDOW_AUTOSIZE );
    38 
    39   /// 创建滑动条来控制阈值
    40   createTrackbar( trackbar_type,
    41                   window_name, &threshold_type,
    42                   max_type, Threshold_Demo );
    43 
    44   createTrackbar( trackbar_value,
    45                   window_name, &threshold_value,
    46                   max_value, Threshold_Demo );
    47 
    48   /// 初始化自定义的阈值函数
    49   Threshold_Demo( 0, 0 );
    50 
    51   /// 等待用户按键。如果是ESC健则退出等待过程。
    52   while(true)
    53   {
    54     int c;
    55     c = waitKey( 20 );
    56     if( (char)c == 27 )
    57       { break; }
    58    }
    59 
    60 }
    61 
    62 
    63 /**
    64  * @自定义的阈值函数
    65  */
    66 void Threshold_Demo( int, void* )
    67 {
    68   /* 0: 二进制阈值
    69      1: 反二进制阈值
    70      2: 截断阈值
    71      3: 0阈值
    72      4: 反0阈值
    73    */
    74 
    75   threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );
    76 
    77   imshow( window_name, dst );
    78 }
  • 相关阅读:
    网络IO之阻塞、非阻塞、同步、异步总结
    C语言栈与调用惯例
    多个文件目录下Makefile的写法
    利用 mount 指令解决 Read-only file system的问题
    error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
    Centos6.4下安装protobuf及简单使用
    Centos下修改启动项和网络配置
    Centos下配置单元测试工具gtest
    Centos配置为驱动程序开发环境
    Centos安装gcc及g++
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12170906.html
Copyright © 2020-2023  润新知