程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-10(8)

2021-11(25)

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

发布于2022-09-20 20:16     阅读(714)     评论(0)     点赞(18)     收藏(5)


7270d55e07ad4581acfce299dc3aad0f.jpeg

 


说在前面的话

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

前言

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

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

原图像展示

46d8a2e252c4495aa37671d183e23e46.jpeg

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

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

  函数原型:

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

    src :源图像

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

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

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

    dst: 输出的图像

    type: 处理方式

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

二值化:

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

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

处理结果:

62226753797e46c7bdd75b38b7ce72c0.jpeg

二值化翻转:

处理方式:和二值化相反

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

处理结果:

f70ab907d1434bb0adf90696b2bfba10.jpeg

三、THRESH_TRUNC处理

trunc其实就是截断的意思

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

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

处理结果:

处理后的图片:

原图:

1fc514bdde4e420c9868e14ebe75ea00.jpeg58ac38f52c55455297199a5c4b25440d.png

四、THRESH_TOZERO与THRESH_TOZERO_INV处理

处理方式:

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

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

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

处理结果:

THRESH_TOZERO:

原图:

594689d697f54d1ba33c358cf2dde020.jpegdfc6c1ac8253498b834d9e2c54b35a27.png

 THRESH_TOZERO_INV:

原图:

ed0ae5fd2f624ed4a5e3919a99b016e6.jpeg6fc3d374a9b149feb9e58b9bd0c76b44.png

总结

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

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

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

 

原文链接:https://blog.csdn.net/Yu_Cblog/article/details/126736055



所属网站分类: 技术文章 > 博客

作者:comeonbady

链接:https://www.pythonheidong.com/blog/article/1760218/296a0b0cf03a1e231c88/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

18 0
收藏该文
已收藏

评论内容:(最多支持255个字符)