• 浅析threshold函数(二值化)


    threshold函数是对于图像二值化的处理。

    首先,二值化就是对于一个图像,确定一个像素值,把大于这个像素的所有像素点处理成一个数值,小于它的也确定成一个数值。

    threshold就是这么一个函数,它包含了5个参数

    threshold(img, gray_binary, 125, 233, THRESH_BINARY_INV);

    这里是书上给的用法,但是属实是有些生涩难懂。这里给出我的理解

    第一个参数:原始图片

    第二个参数:处理后的图片

    第三个参数:设定的像素阈值

    第四个参数:要处理成的最大值

    第五个参数:处理类型。

    其中,第五个参数(处理类型)分为图中图所示,翻译以下:

    THRESH_BINARY//大于它的变成第四个参数设置的最大值,小于它的变成最小值(0)
    THRESH_BINARY_INV//大于它的变成最小值,小于它的变成最大值
    THRESH_TRUNC//大于它的变成阈值,小于它的不变
    THRESH_TOZERO//大于它的变为0,小于它的不变
    THRESH_TOZERO_INV//小于它的变为0,大于它的不变
    //其中,inv类似于取反,所有第一个和第二个,第四个和第五个,就是相反的操作。

    更加简明的话,如图所示叭:

    #include <iostream>
    #include <opencv2/core.hpp>
    #include <opencv2/highgui.hpp>
    #include <opencv2/imgproc.hpp>
    using namespace std;
    using namespace cv;
    int main(int argc,char** argv) 
    {
        Mat img = imread("1.jpg");
        Mat gray_binary;
        //灰度图像二值化
        //THRESH_BINARY_INV--灰度大于阈值125则设为0, 其他值为最大
        threshold(img, gray_binary, 125, 233, THRESH_BINARY_INV);//最大设为233
        imshow("【原始图】", img); 
        imshow("【效果图】", gray_binary);//grar_binary为二值化后图片
        waitKey(0);
        return 0;
    }

    最终效果:

  • 相关阅读:
    Datasource Server returns invalid timezone问题
    springboot之异常处理
    maven的安装配置
    Javajdk的安装
    jdbc连接mysql数据库 (idea)
    关于MySQL数据库的卸载
    python3.6.8的安装及初步使用
    计算机基础及编程语言的简单了解
    git、码云的使用
    粘滞位权限
  • 原文地址:https://www.cnblogs.com/ajmddzp/p/15780537.html
Copyright © 2020-2023  润新知