说在前面的话

博主今天给大家带来人工智能的一个重要领域的入门操作,opencv包的使用和基本操作,希望大家可以从中学到一些东西!

前言

那么这里博主先安利一下一些干货满满的专栏啦!

手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支持一下吧!
算法专栏https://blog.csdn.net/yu_cblog/category_11464817.html

原图像展示

今天博主将会用这张图像作为例子,给大家展示一些阈值处理的操作

一、OpenCV图像阈值化处理函数

  函数原型:

ret,dst = threshold(src,thresh,maxval,type)

src :源图像

thresh: 阈值(127/128是我们常用的阈值)

maxval: 当像素超过阈值(小于等于阈值)所赋予的值,否则取0

ret: 阈值返回值(阈值设定的是多少)

dst: 输出的图像

type: 处理方式

二、二值化THRESH_BINARY与二值化翻转THRESH_BINARY_INV处理

二值化:

处理方式:通道像素值超过阈值的取maxval,通道像素值低于阈值的取0

def test1():
img = cv2.imread(r"C:\Users\Administrator\Desktop\test4.jpg", 1) # 图片路径
ret,img1=cv2.threshold(img,127,255,cv2.THRESH_BINARY) # 二值化
cv2.imshow('img1',img1)
cv2.waitKey(0)
test1()

处理结果:

二值化翻转:

处理方式:和二值化相反

def test1():
img = cv2.imread(r"C:\Users\Administrator\Desktop\test5.jpg", 1)
ret,img1=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) # 二值化翻转
cv2.imshow('img1',img1)
cv2.waitKey(0)
test1()

处理结果:

三、THRESH_TRUNC处理

trunc其实就是截断的意思

处理方式:超过阈值取阈值,低于阈值取自身

def test3():
img = cv2.imread(r"C:\Users\Administrator\Desktop\test.jpg", 0)
cv2.imshow('img',img)
# 3.THRESH_TRUNC 超过阈值取阈值,低于阈值取自身
ret,img1=cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
cv2.imshow('img1',img1)
cv2.waitKey(0)
test3()

处理结果:

处理后的图片:

原图:

四、THRESH_TOZERO与THRESH_TOZERO_INV处理

处理方式:

THRESH_TOZERO:超过阈值不变,低于阈值取0

THRESH_TOZERO_INV:超过阈值取0,低于阈值取不变

def test4():
img = cv2.imread(r"C:\Users\Administrator\Desktop\test5.jpg", 1)
cv2.imshow('img',img)
# 4.THRESH_TOZERO 超过阈值不变,低于阈值取0
# 5.THRESH_TOZERO_INV 取反 -- 超过阈值取0,低于阈值取不变
ret,img1=cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
ret,img1=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
cv2.imshow('img1',img1)
cv2.waitKey(0)
print(ret)
test4()

处理结果:

THRESH_TOZERO:

原图:

THRESH_TOZERO_INV:

原图:

总结

看到这里 相信大家对这方面的内容有了一定的理解了吧?如果你感觉这篇文章对你有帮助的话,希望你可以持续关注,订阅专栏,点赞收藏都是我创作的最大动力!

( 转载时请注明作者和出处。未经许可,请勿用于商业用途 )
更多文章请访问我的主页

@背包https://blog.csdn.net/Yu_Cblog?spm=1000.2115.3001.5343

【OpenCV】基于cv2的图像阈值化处理【超详细的注释和解释】掌握基本操作的更多相关文章

  1. opencv学习之路(13)、图像阈值化threshold

    一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...

  2. opencv之图像阈值化处理

    一.函数简介 1.threshold-图像简单阈值化处理 函数原型:threshold(src, thresh, maxval, type, dst=None) src:图像矩阵 thresh:阈值 ...

  3. 图像阈值化-threshold、adaptivethreshold

    在图像处理中阈值化操作,从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体).这样的图像分割方法是基于图像中物体与背景之间的灰度差异,而且此分割属于像素级的分割.open ...

  4. OpenCV学习笔记(7)——图像阈值

    简单阈值,自适应阈值,Otsu's二值化等 1.简单阈值 当像素值高于阈值时,我们给这个像素赋予一个新值,否则给他赋予另一个值.这个函数就是cv2.threshhold().这个函数的第一个参数就是原 ...

  5. opencv2函数学习之threshold:实现图像阈值化

    在opencv2中,threshold函数可以进行阈值化操作. double threshold( const Mat& src, Mat& dst, double thresh,do ...

  6. 【学习opencv第七篇】图像的阈值化

    图像阈值化的基本思想是,给定一个数组和一个阈值,然后根据数组中每个元素是低于还是高于阈值而进行一些处理. cvThreshold()函数如下: double cvThreshold( CvArr* s ...

  7. 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理具体解释

    本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行解说.主要通过MFC单文档视图实现显示BMP图片点运算处理.包含图像灰度线性变换 ...

  8. OpenCV阈值化处理

    图像的阈值化就是利用图像像素点分布规律,设定阈值进行像素点分割,进而得到图像的二值图像.图像阈值化操作有多种方法,常用方法有经典的OTSU.固定阈值.自适应阈值.双阈值及半阈值化操作.这里对各种阈值化 ...

  9. Emgu学习之(四)——图像阈值

    http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...

  10. 【转】Emgu 图像阈值

    原文地址:http://www.cnblogs.com/CoverCat/p/5043833.html 转载,备查 Visual Studio Community 2015 工程和代码:http:// ...

随机推荐

  1. 2019 篇 - 分享数百个 HT的工业互联网 2D 3D 可视化应用案例

    继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...

  2. vue权限管理

    https://www.bilibili.com/video/BV1nq4y1i7BU/?spm_id_from=333.788.recommend_more_video.6&vd_sourc ...

  3. 解决刷新页面丢失vuex数据

  4. vite2.0+vue3.2部署Nginx 刷新404

    vite2.9 + vue3.2 打包部署到nginx上刷新页面404问题 在本地运行没问题,部署到服务器上,能正常访问,但是刷新之后页面404 原有的Nginx配置为: server { liste ...

  5. java项目实践-cookie-session-day18

    目录 1. cookie 2. session 3. servletcontext 4.servletConfig 1. cookie cookie 在客户端(浏览器)中保持http状态的 信息技术 ...

  6. .Net 使用 MongoDB

    1.安装nuget包 MongoDB.Driver 2.简单代码 using MongoDB.Bson; using MongoDB.Driver; using System.Buffers; usi ...

  7. [转帖]Oracle 23c 才支持 TLS1.3

    Transport Layer Security 1.3 Protocol Now Supported in Oracle Database Starting with Oracle Database ...

  8. [转帖]linux中top性能分析工具中的TIME+

    top命令的TIME/TIME+是指的进程所使用的CPU时间,不是进程启动到现在的时间,因此,如果一个进程使用的cpu很少,那即使这个进程已经存在N长时间,TIME/TIME+也是很小的数值. 此外, ...

  9. 【转帖】【ethtool】ethtool 网卡诊断、调整工具、网卡性能优化| 解决丢包严重

    目录 即看即用 详细信息 软件简介 安装 ethtool的使用 输出详解 其他指令 将 ethtool 设置永久保存 如何使用 ethtool 优化 Linux 虚拟机网卡性能 ethtool 解决网 ...

  10. [转帖]shell 实现行转列、列转行的几种方法

    目录 shell 实现行转列.列转行的几种方法 awk 行转列 xargs 行转列 tr 列转行 参考资料 shell 实现行转列.列转行的几种方法 awk 行转列 以空格为分隔符 awk -F &q ...