说在前面的话

博主今天给大家带来人工智能的一个重要领域的入门操作,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. Codeforces Round #481 (Div. 3) 经典几道思维题

    A - AAA POJ - 3321 给你一颗树,支持两种操作 1.修改某一节点的权值 2.查询子树的权值(子树中节点的个数) 很显然可以用树状数组/线段树维护 B - BBB CodeForces ...

  2. vivo 商城前端架构升级—前后端分离篇

    本文主要以 vivo 商城项目的前后端分离经验,总结前后端分离思路,整理前后端分离方案,以及分离过程中遇到的问题及解决方案. 一.前言 vivo官方商城在2015年创建网上商城,开辟网络销售渠道,几年 ...

  3. 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)

    Adam 优化算法 在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多 ...

  4. Linux 中常见目录的作用

    by emanjusaka from https://www.emanjusaka.top/2024/01/linux-directory-role 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下 ...

  5. 通过 DBCA 创建 Oracle Database 21c 的进度停滞在 36%

    1.问题 安装过程中一直卡在36% 检查 dbca 日志文件 位于 H:\app\trmbh\cfgtoollogs\dbca\ORCL\trace.log_2023-09-12_12-04-20PM ...

  6. 基本操作Linux

    基本操作Linux 关机,重启# 关机 shutdown -h now # 重启 shutdown -r now 查看系统,CPU信息# 查看系统内核信息 uname -a # 查看系统内核版本 ca ...

  7. [转帖]elasticsearch8.0以上版本修改内置用户密码

    https://www.cnblogs.com/zhang-ding-1314/p/16199682.html 修改密码需要在es启动,并cd到es的bin目录下执行: 1.重置密码并在控制台显示新密 ...

  8. [转帖]《AWK程序设计语言》笔记(1)—— AWK入门与简单案例

    原文为 <The AWK Programming Language>,GitHub上有中译版,不过有些内容翻译的比较奇怪,建议跟原版对照着看 https://github.com/wuzh ...

  9. ESXi查看底层存储磁盘厂商型号的方式与方法

    ESXi查看底层存储磁盘厂商型号的方式与方法 背景 公司一台过保的服务器出现了磁盘告警 Vendor不太靠谱. 过保的机器就不管了 不买他们的服务器也不说一下是啥硬盘. 想自己替换,需要先获取磁盘的型 ...

  10. Linux部分参数的学习

    Linux部分参数的学习 简介 之前总结过很多Nginx或者是部署软件时的一些注意事项. 但是感觉对linux系统参数部分掌握的不是很好. 今天周末想着整理一下,作为备忘. limits.conf i ...