图像形态学-阈值的概念、功能及操作(threshold()函数))【C++的OpenCV 第九课-OpenCV图像常用操作(六)】

这篇具有很好参考价值的文章主要介绍了图像形态学-阈值的概念、功能及操作(threshold()函数))【C++的OpenCV 第九课-OpenCV图像常用操作(六)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、阈值(thresh)的概念

  • 首先,顾名思义,“”就是范围或者限制,所以,“阈值”就是某个限制的值(该值具有一定的数学含义,即“临界值”,例如车辆限高杆的高度就是一种阈值,不可超越;亦或者1.1米以下儿童不收费,超过1.1就要收费。)
    c++ opencv threshold,openCV,opencv,计算机视觉,c++
  • 其次,图形学中的阈值,往往指某个你想要设置的像素值。

二、阈值在图形学中的用途

        图像阈值进程被用于图像分离领域,根据某个确定的阈值,将图像进行分离,从而得到感兴趣的区域。
c++ opencv threshold,openCV,opencv,计算机视觉,c++

        当然基于这个思想,还可以应用于更深更高的领域,例如医学图像分析等领域。总之,其应用价值非常高。就像前一章的内容一样。


三、阈值的作用和操作

3.1 在OpenCV中可以进行的阈值操作

        我们接下来用图像和函数公式来尽可能的表达其原理和功能。
        注意,以下的图像中,红色实线为设置的阈值!

  • 二进制模式

    • 模式介绍:
      c++ opencv threshold,openCV,opencv,计算机视觉,c++
    • 解释:
              当源图像的像素值大于阈值时,处理后的图像中这些像素点均取最新设置的最大值像素作为结果,如果源图像的像素值小于或者等于阈值,则结果图像中的该像素值为0。
    • 图示:
      • 处理前像素值数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++

      • 处理后像素值数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++

  • 二进制倒置

    • 模式介绍:
      c++ opencv threshold,openCV,opencv,计算机视觉,c++
    • 解释:
              和像素二进制模式完全相反即可! 即:当源图像的像素值大于阈值时,结果图像对应的像素值为0,当源图像的像素值小于等于阈值时,结果图像对应的阈值取提前设置好的MaxValue(最大值)。
    • 图示:
      • 处理前像素值数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
      • 处理后像素值数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
  • 阈值截短

    • 解释:
              即一句话,把所有高于阈值的像素点的值都设置为等于阈值,其余像素值不变
    • 图示:
      • 处理前的图像数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
      • 处理后的图像数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
  • 零阈值

    • 模式介绍:
      c++ opencv threshold,openCV,opencv,计算机视觉,c++

    • 解释:
              源图像中低于或者等于阈值的像素被设置为0

    • 图示:

      • 处理前的图像数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
      • 处理后的图像数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
  • 零阈值倒置

    • 模式介绍:
      c++ opencv threshold,openCV,opencv,计算机视觉,c++
    • 解释:将上边0阈值的数据反过来即可,即:当源图像像素值大于阈值时,生成的图片对应像素位置的值为0;反之,保留原像素值。
    • 图示:
      • 处理前图像的数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++
      • 处理后图像的数据:
        c++ opencv threshold,openCV,opencv,计算机视觉,c++

3.2 操作实例

3.2.1 threshold()函数介绍

  • 函数原型:
double cv::threshold(
						InputArray src,
						OutputArray dst,
						double 	thresh,
						double 	maxval,
						int 	type 
					)	
  • 参数解释:
    • src : 原始图像
    • dst:处理后的图像
    • thresh:阈值
    • maxval:像素最大值,即上文中提到的MaxValue
    • type:阈值处理的方式,在这里,上文中提到的几种阈值模式由以下整数对应:
      • 0: Binary ,二进制模式
      • 1: Binary Inverted,二进制倒置
      • 2: Threshold Truncated,阈值截短
      • 3: Threshold to Zero,零阈值
      • 4: Threshold to Zero Inverted,零阈值倒置

3.2.2 实例

参考源代码:示例源码

#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
using namespace cv;

int main(void)
{
    Mat srcImg = imread("/home/aelx-chen/demo.jpg");
    Mat grayImg;
    Mat dstImg;
    cvtColor(srcImg, grayImg, COLOR_BGR2GRAY);

    threshold(grayImg, dstImg, 90, 255, 1);
    /*
        将原图像,设置阈值为90,最大阈值为255,采用二进制方式处理
    */

    imshow("source image",srcImg);
    imshow("gray image",grayImg);
    imshow("destination image",dstImg);
    waitKey(0);
    return 0;
}

3.2.3 结果

c++ opencv threshold,openCV,opencv,计算机视觉,c++


上节课的内容(作者还是鼓励各位同学按照顺序进行学习哦):【C++的OpenCV】第八课-OpenCV图像常用操作(五):图像形态学-图像金字塔(Gaussian pyramid、Laplacian pyramid)和向上(下)采样的使用和原理文章来源地址https://www.toymoban.com/news/detail-773044.html

到了这里,关于图像形态学-阈值的概念、功能及操作(threshold()函数))【C++的OpenCV 第九课-OpenCV图像常用操作(六)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV快速入门:图像形态学操作

    图像形态学是一门强大而有趣的技术,它通过对图像进行形态学操作,使图像更适合后续处理步骤。在本文中,我们将深入探讨OpenCV中的图像形态学操作,快速入门这一关键领域。 图像形态学作为数字图像处理的一个分支,致力于通过形态学操作实现对图像特征的提取、噪音

    2024年02月05日
    浏览(35)
  • Opencv | 图像卷积与形态学变换操作

    在每个图像位置(x,y)上进行基于邻域的函数计算,其中函数参数被称为卷积核 (kernel) kernel核的尺寸通常为奇数,一般为: 3 ∗ 3 、 5 ∗ 5 、 7 ∗ 7 3*3、5*5、7*7 3 ∗ 3 、 5 ∗ 5 、 7 ∗ 7 不同功能需要定义不同的函数,其中功能可以有: 图像增强:           平滑 / 去

    2024年04月23日
    浏览(27)
  • OpenCV基础操作(5)图像平滑、形态学转换、图像梯度

    1、2D卷积 我们可以对 2D 图像实施低通滤波(LPF),高通滤波(HPF)等。 LPF 帮助我们去除噪音,模糊图像。HPF 帮助我们找到图像的边缘。 OpenCV 提供的函数 cv.filter2D() 可以让我们对一幅图像进行卷积操作。 ​ ​ ​ ​ 2、图像模糊 使用低通滤波器可以达到图像模糊的目的。

    2024年02月07日
    浏览(38)
  • 图像处理技巧形态学滤波之腐蚀操作

    欢迎回来,我的图像处理爱好者们!今天,让我们深入研究图像处理领域中的形态学计算。这些非线性的图像处理技术允许我们操纵图像中对象的形状和结构。在本系列中,我们将依次介绍四种基本的形态学操作:腐蚀、膨胀、开操作和闭操作。 闲话少说,我们直接开始吧!

    2024年02月13日
    浏览(30)
  • C++OpenCV(7):图像形态学基础操作

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 🔆 OpenCV项目地址及源代码:点击这里 膨胀与腐蚀是 数学形态学在图像处理中最基础的操作 。 膨胀操作是取 每个位置领域内最大值 ,所以膨胀后输出图像的总体亮度的平均值比起原图会有所升高,图像中比较亮的区域的面

    2024年02月16日
    浏览(38)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(37)
  • OpenCV图像处理学习十,图像的形态学操作——膨胀腐蚀

    一.形态学操作概念 图像形态学操作是指基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学对图像进行处理。 形态学有四个基本操作:腐蚀、膨胀、开操作、闭操作,膨胀与腐蚀是图像处理中最常用的形态学操作手段。 二.形态学操作-膨胀 跟卷积

    2024年02月05日
    浏览(36)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(42)
  • 使用opencv c++完成图像中水果分割(分水岭、形态学操作、通道处理)单独标记每个水果

    2023.4.16日更新 1. 利用一阶矩增加了草莓等水果的质心绘制。 2. 绘制出了生长方向。 原为本人机器人视觉作业。参考文章http://t.csdn.cn/eQ0qp(目测是上一届的学长) 要求:在网络上寻找水果重叠在一起的图片、经过一系列图像处理,完成每个水果的分割,并单独标记出来。 导

    2024年02月04日
    浏览(58)
  • (数字图像处理MATLAB+Python)第九章图像形态学运算-第三节:二值图像的形态学处理

    形态滤波 :是一种在数字图像处理中常用的图像处理技术,用于改善图像的质量、提取图像的特定特征或去除图像中的噪声。形态滤波主要基于形态学运算,通过结构元素(也称为模板)对图像进行局部区域的操作,从而改变图像的形状和结构。选择不同形状(如各向同性的

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包