Threshold函数:

函数的调用方式:

void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_value, int threshold_type );

函数参数详解:

src 原始数组 (单通道 , 8-bit of 32-bit 浮点数).

dst 输出数组,必须与 src 的类型一致,或者为 8-bit. threshold

阈值 max_value 使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值.

threshold_type 阈值类型

函数 cvThreshold 对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。(cvCmpS 也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大象素值的图像点。本函数支持的对图像取阈值的方法由 threshold_type 确定:

threshold_type=CV_THRESH_BINARY:
dst(x,y) = max_value, if src(x,y)>threshold0, otherwisethreshold_type=CV_THRESH_BINARY_INV:
dst(x,y) = 0, if src(x,y)>thresholdmax_value, otherwisethreshold_type=CV_THRESH_TRUNC:
dst(x,y) = threshold, if src(x,y)>thresholdsrc(x,y), otherwisethreshold_type=CV_THRESH_TOZERO:
dst(x,y) = src(x,y), if (x,y)>threshold0, otherwisethreshold_type=CV_THRESH_TOZERO_INV:
dst(x,y) = 0, if src(x,y)>thresholdsrc(x,y), otherwise

opencv代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>using namespace std;
using namespace cv;int main()
{Mat img = imread("d:6.jpg");Mat dst(img.size(),8,1);cvtColor(img, img, CV_BGR2GRAY);threshold(img, img, 100, 255, CV_THRESH_BINARY);/*dilate(img, dst, NULL, Point(-1, -1), 10, BORDER_DEFAULT, Scalar(0, 0, 255));*/namedWindow("shiyan");imshow("shiyan", img);waitKey(0);return 0;
}

或者:

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>using namespace cv;/// 全局变量定义及赋值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;
char* window_name = "Threshold Demo";char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted";
char* trackbar_value = "Value";/// 自定义函数声明
void Threshold_Demo( int, void* );/*** @主函数*/
int main( int argc, char** argv )
{/// 读取一副图片,不改变图片本身的颜色类型(该读取方式为DOS运行模式)src = imread( argv[1], 1 );/// 将图片转换成灰度图片cvtColor( src, src_gray, CV_RGB2GRAY );/// 创建一个窗口显示图片namedWindow( window_name, CV_WINDOW_AUTOSIZE );/// 创建滑动条来控制阈值createTrackbar( trackbar_type,window_name, &threshold_type,max_type, Threshold_Demo );createTrackbar( trackbar_value,window_name, &threshold_value,max_value, Threshold_Demo );/// 初始化自定义的阈值函数Threshold_Demo( 0, 0 );/// 等待用户按键。如果是ESC健则退出等待过程。while(true){int c;c = waitKey( 20 );if( (char)c == 27 ){ break; }}}/*** @自定义的阈值函数*/
void Threshold_Demo( int, void* )
{/* 0: 二进制阈值1: 反二进制阈值2: 截断阈值3: 0阈值4: 反0阈值*/threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );imshow( window_name, dst );
}

二值化函数Threshold相关推荐

  1. 详解图像二值化 函数threshold

    在图像处理过程中,一般经常会用到图像的二值化函数 threshold 在日常使用中,虽然理解二值化的含义,但是具体函数的参数的定义还不是很清楚,下面简单纪录一下,增强记忆. threshold( In ...

  2. Opencv java 二值化函数threshold (10)

    函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...

  3. OpenCV:二值化函数cv2.threshold

    目录 功能作用: (一)简单阈值 (二)自适应阈值: (三)Otsu's二值化 功能作用: 二值化函数作用:图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效 ...

  4. 计算机视觉(1)关于cvThreshold二值化函数

    计算机视觉(1)关于cvThreshold二值化函数 opencv中文说明中是这样说的: Threshold 对数组元素进行固定阈值操作 void cvThreshold( const CvArr* ...

  5. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑

    查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...

  6. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】

    查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...

  7. 图像二值化 cv2.threshold

    图像二值化 cv2.threshold http://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.html (一)简单阈值 impor ...

  8. python-opencv-cv2.threshold()二值化函数详解

    文章目录 1.cv2.threshold()参数说明 2.代码示例 1.cv2.threshold()参数说明 cv2.threshold(src, thresh, maxval, type[, ds ...

  9. OpenCV二值化--cv2.threshold()函数、cv2.adaptiveThreshold()函数

    @[toc] 目录 1.cv2.threshold()函数 2.cv2.adaptiveThreshold()函数 3.3.什么时候用cv2.adaptiveThreshold()函数 一.cv2.t ...

最新文章

  1. 如何让UTF-8能对文档XML编辑
  2. 个人项目中的WCF使用
  3. maven_SonarQube中的Maven项目的单元和集成测试报告
  4. 面试题:如何求根号2
  5. 64位CentOs7源码安装mysql-5.6.35过程分享
  6. jfinal mysql date,jfinal与mysql数据类型拾掇大全
  7. Linux学习进阶!!
  8. SAP CRM enterprise search change pointer注册场景之一 - 产品创建
  9. 理想汽车已累计交付2万台 仅用时10个月
  10. [转] PHP之加解密: Mcrypt函数
  11. python哈姆雷特英文词频统计_MOOC《Python语言程序设计》第6周练习题
  12. 【优化求解】基于matlab遗传算法求解列车交路方案优化问题【含Matlab源码 1361期】
  13. 十天学会单片机和c语言编程,十天学会单片机和C语言编程
  14. matlab画多個平面,matlab的平面二维图的绘制.ppt
  15. 驱动精灵显示服务器去火星了,“用驱动精灵发现不了声卡,设备管理器上面正常”的解决方案...
  16. 穆迪分析宣布推出云服务,助力银行实现监管合规
  17. 趣头条老是旧闻重复,怎么处理 | 伪原创视频需要改什么
  18. 如何从一个完全自动化的交易系统获利
  19. 统计相关总结(AWK等)
  20. 计算机毕业设计Java“臻宝”书画竞拍系统(源码+系统+mysql数据库+lw文档)

热门文章

  1. Ubuntu16.04 搭建SVN服务器(建立版本仓及import和checkout代码)
  2. WINCE的内存配置-config.bib文件的解析
  3. WINCE下SOS驱动开发
  4. formatnumber js_javascript js format number 数字格式化
  5. python-字符串常用方法、文件简单读写
  6. requests记录
  7. 安装onlyoffice document server
  8. double,float,BigDecimal类型数值的操作
  9. 电商仓储管理水平的五大标准
  10. 订单可视化(智能制造、流程再造、企业信息化) 第三篇 订单可视化定义及目标...