所谓阈值,其基本的思想是:给定一个数组和一个阈值,然后根据数组中每个元素的值是低于还是高于阈值而进行的一些处理。

函数原型: void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type )

/**********************************************************************************************************
*文件说明:
*        基于OpenCv的阈值分割算法
*开发环境:
*        win7+vs2010+opencv2.4.8
*时间地点:
*        陕西师范大学.2017.2.24
*作    者:
*        李丽
***********************************************************************************************************/
#include<stdio.h>
#include<cv.h>
#include<highgui.h>void sum_rgb(IplImage*src,IplImage*dst)
{IplImage* r = cvCreateImage( cvGetSize(src),src->depth,1);IplImage* g = cvCreateImage( cvGetSize(src),src->depth,1);IplImage* b = cvCreateImage( cvGetSize(src),src->depth,1);cvSplit(src,r,g,b,NULL);                 // cvSplit是具有分别复制每个通道到多单通道图像功能的openCV中的一个函数。IplImage* s = cvCreateImage( cvGetSize(src),IPL_DEPTH_8U,1);cvAddWeighted(r,1./3.,g,1./3.,0.0,s);cvAddWeighted(s,2./3.,b,1./3.,0.0,s);cvThreshold(s,dst,100,100,CV_THRESH_TRUNC); //进行阈值化处理cvReleaseImage(&r);cvReleaseImage(&g);cvReleaseImage(&b);cvReleaseImage(&s);}
//主函数入口
int main(int argc,char** argv)
{IplImage* src = cvLoadImage(argv[1]); //cvNamedWindow("【1】",1);  cvShowImage("【1】",src);cvNamedWindow("原图",1);cvShowImage("原图",src);IplImage* dst = cvCreateImage( cvGetSize(src),src->depth,1);sum_rgb(src,dst);cvNamedWindow(argv[1],1);cvShowImage(argv[1],dst);while(1){if((cvWaitKey(10)&0x7f)==27)break;}cvDestroyWindow(argv[1]);cvReleaseImage(&src);cvReleaseImage(&dst);
}

处理结果

1:左边原图  右边为阈值化后的图

关于阈值化函数cvThreshold()相关推荐

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

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

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

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

  3. OpenCV自适应阈值化函数adaptiveThreshold详解,并附实例源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-6-14日:又发现一种阈值分割法,最大 ...

  4. 毛星云opencv之阈值化函数threshold--摘抄

     

  5. 二值化函数Threshold

    Threshold函数: 函数的调用方式: void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_va ...

  6. OpenCV图像处理(十二)---图像阈值化

    如果两个热力学系统中的每一个都与第三个热力学系统处于热平衡(温度相同),则它们彼此也必定处于热平衡.这一结论称做"热力学第零定律".又称热平衡定律,是热力学的四条基本定律之一,是一 ...

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

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

  8. opencv2函数学习之threshold:实现图像阈值化

    在opencv2中,threshold函数可以进行阈值化操作. double threshold( const Mat& src, Mat& dst, double thresh,do ...

  9. 半阈值化的应用说明及利用函数threshold实现半阈值化的方法

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 半阈值化的原理如下图所示: 图像半阈值操作通常应 ...

最新文章

  1. oracle取非空,求一条sql,返回分组后,空值取最近一条非空值,非空值取本身
  2. 视频|深度相机与应用
  3. linux ping 报错 sendmsg: Operation not permitted
  4. getline读取不等待输入的问题
  5. html5——html5简介
  6. CentOS 6.5系统安装配置图解教程(详细图文)
  7. 初学者学MvcMovie遇到的问题解决办法
  8. 坑爹BUG,没有详细的看还真看不出问题
  9. 有关ADRV9009的博客资料
  10. 2021-08-13 sql练习
  11. oppoa3android怎么升级,OPPO A3刷机教程_OPPO A3卡刷升级更新官方系统包
  12. value函数介绍和实例
  13. Lync日常运维常用命令
  14. ES6 新特性之 let, const : JavaScript在变量方面的改进。
  15. STM32精英版(正点原子STM32F103ZET6开发板)学习篇12——电容触摸按键实验
  16. nginx的location匹配字段后斜杠的作用
  17. 执行npm run dev 报错 vue-element-admin@4.2.1 dev: `vue-cli-service serve`
  18. 单片机测钳形电流表_钳形电流表怎么测量直流电流?
  19. 打工必看:试用期一定要签合同吗?
  20. 数据库小技能:Case和nvl的使用

热门文章

  1. 虚拟机如何配置网络ip地址_木杉入门Elasticsearch(2):虚拟机IP地址配置
  2. Oracle的SGA与系统vm.nr_hugepages不匹配导致的故障
  3. Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)
  4. maven学习(2)
  5. linux实现任务计划,linux cron实现计划任务
  6. java编程如何 实现8开立方等于2_Java之Math类使用小结
  7. linux智能灌溉流程,农田自动灌溉系统及灌溉方法与流程
  8. window.location.href重定向 不会触发webview
  9. Http\Https\Socket
  10. 解决mysql从windows迁移到centos出现乱码问题