Qt-OpenCV学习笔记--自适应阈值--adaptiveThreshold()

概述

adaptiveThreshold是threshold的进阶版本。threshold只是简单的把图像像素根据阈值区分,这样的二值区分比较粗糙。可能会导致图像的信息与特征完全无法提取,或者漏掉一些关键的信息。

自适应阈值处理的好处:

  • 每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的。
  • 亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。
  • 不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈值。

函数 


void cv::adaptiveThreshold
(
	InputArray 	src,
    OutputArray 	dst,
    double 	maxValue,
    int 	adaptiveMethod,
    int 	thresholdType,
    int 	blockSize,
    double 	C 
)
src源图像
dst输出图像
maxvalue分配给满足条件的像素的非零值
adaptiveMethod

自适应阈值算法:

ADAPTIVE_THRESH_MEAN_C  (均值)

ADAPTIVE_THRESH_GAUSSIAN_C (高斯)

thresholdType

阈值类型:

THRESH_BINARY
THRESH_BINARY_INV

blockSize用于计算像素阈值的像素邻域的大小:3、5、7等
c从平均值或加权平均值中减去常数(通常,它是正的,但也可能是零或负的)

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <vector>

using namespace cv;
using namespace std;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //载入原始图像
    Mat mat0 = imread("c:/opencv/logo.jpg");
    //显示
    imshow("mat",mat0);

    //将图像转为灰度图
    Mat im_gray;
    cv::cvtColor(mat0,im_gray,COLOR_BGR2GRAY);
    imshow("im_gray",im_gray);

    //自适应阈值处理
    Mat mat_ada;
    cv::adaptiveThreshold(im_gray,mat_ada,255,ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY,3,6);
    //显示
    imshow("mat_ada",mat_ada);

}

Widget::~Widget()
{
    delete ui;
}

测试结果

通过改变 blockSize c 的数值,可以得到不同的处理效果:

  • blockSize 的数值越大,处理效果越粗糙;反之,越细腻。
  • c 的数值越大,噪音越少;反之,噪音越多。

参考 

adaptiveThreshold()讲解

OpenCV之自适应阈值操作:adaptiveThreshold()函数

opencv中自适应阈值(adaptiveThreshold()函数)介绍

CV2自适应阈值函数:adaptiveThreshold()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值