ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

opencv图像二值化操作

2021-01-06 12:58:48  阅读:195  来源: 互联网

标签:src 阈值 int dst opencv THRESH 图像 include 二值化


函数threshold对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图进行阈值操作得到二值图像或者是去掉噪声。

固定阈值操作:Threshold()函数

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
    Mat src=imread("1.jpg");
    Mat src_gray,dst;
    imshow("原图",src);
    cvtColor(src,src_gray,COLOR_RGB2GRAY);

    threshold(src_gray,dst,200,100,3);//200是阈值的具体值
    
    imshow("效果图",dst);
    waitKey(0);

    return 0;
}

下面对 threshold(src_gray,dst,200,100,3);中的第五个参数进行解释:
有5种类型:

  • THRESH_BINARY:将被阈值化的值和阈值---------------------0
  • THRESH_BINARY_INV:二值化阈值-----------------------------1
  • THRESH_TRUNC:反向二值阈值化并反转---------------------2
  • THRESH_TOZERO:超过阈值被置为0---------------------------3
  • THRESH_TOZERO_INV:低于阈值被置为0-----------------------4

其中,我们用的最多的就是第四和第五种类型

自适应阈值操作:adaptiveThreshold()函数
OpenCV提供的API:

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue,
                      int adaptiveMethod, int thresholdType, int blockSize, double C)

说明下各参数:

  • InputArray src:源图像

  • OutputArray dst:输出图像,与源图像大小一致

  • double maxValue给像素赋的满足条件的非零值

  • int adaptiveMethod:在一个邻域内计算阈值所采用的算法,有两个取值,分别为 ADAPTIVE_THRESH_MEAN_CADAPTIVE_THRESH_GAUSSIAN_C
    ADAPTIVE_THRESH_MEAN_C的计算方法是计算出领域的平均值再减去第七个参数double C的值。
    ADAPTIVE_THRESH_GAUSSIAN_C的计算方法是计算出领域的高斯均值再减去第七个参数double C的值。

  • int thresholdType:这是阈值类型,只有两个取值,分别为 THRESH_BINARYTHRESH_BINARY_INV

  • int blockSizeadaptiveThreshold的计算单位是像素的邻域块,这是局部邻域大小,3、5、7等。

  • double C:这个参数实际上是一个偏移值调整量,用均值和高斯计算阈值后,再减或加这个值就是最终阈值。

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
    Mat src=imread("1.jpg");
    Mat src_gray,dst;
    imshow("原图",src);
    cvtColor(src,src_gray,COLOR_RGB2GRAY);

    adaptiveThreshold(src_gray,dst,255,ADAPTIVE_THRESH_GAUSSIAN_C,0,3,1);

    imshow("效果图",dst);
    waitKey(0);

    return 0;
}

标签:src,阈值,int,dst,opencv,THRESH,图像,include,二值化
来源: https://blog.csdn.net/seniorc/article/details/112261212

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有