常州上位机培训

常州机器视觉培训

常州机器人培训

江苏和讯自动化设备有限公司欢迎您!
  • 和讯PLC,电工培训中心优势,名师团队一对一教学.
热门课程
联系方式
  • 常州和讯自动化培训中心
  • 常州市新北区太湖东路府琛大厦2号楼307-1室,307-2室(常州万达广场对面)
  • 电话:0519-85602926
  • 手机:15861139266 13401342299
当前位置:网站首页 > 新闻中心 新闻中心
Opencv实现三种主流阈值分割进行缺陷检测(上)-常州机器视觉学习,常州上位机学习
日期:2024-3-20 16:16:58人气:  标签:常州机器视觉学习 常州上位机学习

阈值处理分析

1️⃣全局阈值二值化-threshold()

OpenCV的threshold函数一般是给定一个阈值,对超过或者低于这个阈值的像素进行处理,函数如下:

threshold(
    InputArray src,      // 输入图像
    OutputArray dst,     // 输出图像
    double thresh,       // 阈值
    double maxValue,     // 最大值(对于三通道图像一般是255)
    int thresholdType    // 阈值化操作的类型           )
 阈值化操作的类型常用两种:
THRESH_BINARY     //黑背景找白目标(即超过设定阈值的值置255,其他为0)THRESH_BINARY_INV //白背景找黑目标(即超过设定阈值的值置0,其他为255)

 全局阈值类似一刀切的概念。对于整体图像来说,找到一个合适的阈值,将图像分为0(黑色)和255(白色)。

2️⃣自适应阈值二值化-adaptiveThreshold()

对于亮度分布差异较大的图像,因为常常无法找到一个合适的阈值。因此我们需要一种改进的阈值化算法,即自适应阈值化。

    OutputArray dst,      
     maxValue,      
     adaptiveMethod,   
     thresholdType     
     blockSize,        
     C

 自适应阈值化能够根据图像不同区域亮度分布的,改变阈值。因此,我们针对同一图像的不同区域获得不同的阈值,并为具有不同照明的图像提供更好的结果。

 3️⃣双阈值二值化

对于图像具有明显的双分界特征,可以使用双阈值法进行二值化操作,即实现Halcon中的threshold函数。

简单来说:

  • Halcon的threshold函数是获取区间[a, b]之间的灰度值(双阈值)

  • OpenCV的threshold只能针对大于或者小于a或者b的灰度值处理(单阈值)

因此我们可以预设两个特定的阈值量thresh1、thresh2,并且thresh1 < thresh2 。阈值化的过程就是,将在 (thresh1,thresh2) 这个区间内的灰度值设置为maxVal(255),将其余部分设置为0 。

    const int maxVal = 255;        //预设最大值
    int low_threshold = 90;        //较小的阈值量
    int high_threshold = 190;      //较大的阈值量    //小阈值对源灰度图像进行二进制阈值化操作    threshold(srcGray, dst1, low_threshold, maxVal, THRESH_BINARY);    //大阈值对源灰度图像进行反二进制阈值化操作    threshold(srcGray, dst2, high_threshold, maxVal, THRESH_BINARY_INV);    //矩阵"与运算"得到二值化结果
    bitwise_and(dst1, dst2, dst); //对像素加和
    imshow("双阈值二值化", dst);
程序中主要还是用到了threshold()函数,对较小的阈值量进行二进制阈值化,而对较大的阈值量进行反二进制化操作,最后将所得的两幅图像进行与运算,得到最终效果。
本文网址:
下一篇:没有资料

相关信息:
版权所有 CopyRight 2006-2017 江苏和讯自动化设备有限公司 电话:0519-85602926 地址:常州市新北区太湖东路府琛大厦2号楼307-1室,307-2室
ICP备14016686号-2 技术支持:常州鹤翔网络
本站关键词:常州电工培训 常州电工证 常州变频器培训 常州触摸屏培训 网站地图 网站标签
在线与我们取得联系