说在前面的话

博主今天给大家带来人工智能的一个重要领域的入门操作,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. AcWing 第五场周赛

    比赛链接:Here AcWing 3726. 调整数组 签到题 void solve() { int n; cin >> n; int x = 0, y = 1, c; for (int ...

  2. P1525 关押罪犯 (并查集 / 二分图)| 二分图伪码

    原题链接:https://www.luogu.com.cn/problem/P1525 题目概括: 给你m对关系,每对关系分别涉及到x,y两人,矛盾值为w 请你判断分配x和y到两个集合中,能否避免冲突 ...

  3. 理解CAP理论

    1. 理论什么是CAP? cap定理,它的提出是对于一个分布式系统得出的一个观点,是不能同时满足下面三点 一致性 可用性 分区容忍性 CAP理论认为,分布式系统最多只能同时满足其中的两个特性,而无法同 ...

  4. 【调试】kprobes(一)基本概念

    简介 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用.何时被调用.执行是否正确以及函数的入参和返回值是什么等等. 比较简单的做法是在内核代码对应的函数中添加日志打印信息, ...

  5. zzuli1895: 985的0-1串难题

    //解法:用二分查找,如果当前位置是'1',则查找比这个位置多k+1个零的位置,如果当前位置是'0',则查找比当前位置多k个零的位置, 注意要在末尾添个最大的值 #include<iostrea ...

  6. TOEFL | Reading · 题型总结

    目录 直接引用 - 直译题(不要读文章) 直接引用 - why 题(需要细读题干) 直接引用 - 其他(需要细读题干) 理解题(出现最多,需要细读题干) 转义题(不要读题干) 添加句子题(不要读题干) ...

  7. nginx.conf 配置解析及常用配置

    本文为博主原创,未经允许不得转载: nginx.conf 配置文件配置解析 #定义 Nginx 运行的用户和用户组.默认nginx的安装用户为 nobody user www www: #启动进程,通 ...

  8. idea相关配置及插件安装

    对idea相关的配置及好用的插件进行总结下. 一.idea 破解码及配置:https://www.jb51.net/softs/672190.html 二.idea插件: 1.findBugs-ide ...

  9. Angular系列教程之MVC模式和MVVM模式

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. 为R Markdown配置TinyTex编译环境

    技术背景 在前面一篇博客中,我们介绍了一些关于在Windows系统上安装R Studio来编写R Markdown,最后编译成Beamer的演示文档的过程.而在Windows系统的使用过程中发现,编译 ...