opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」通常情况,我们一般不知道设定怎样的阈值thresh才能得到比较好的二值化效果,只能去试。如对于一幅双峰图像(理解为图像直方图中存在两个峰),我们指定的阈值应尽量在两个峰之间的峰谷#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像ret,mask=cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)plt.imshow(mask,cmap=’gray’)上面代码的作用是,将灰度图img2gray中灰度值小于175的点置…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

我的小程序:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」
待办计划:给自己立个小目标吧!

cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下:

#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像
ret,mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)
plt.imshow(mask,cmap='gray')

Jetbrains全家桶1年46,售后保障稳定

上面代码的作用是,将灰度图img2gray中灰度值小于175的点置0,灰度值大于175的点置255

具体用法如下:

threshold(src, thresh, maxval, type[, dst])->ret,dst

src::灰度图

thresh:阈值

maxval:最大值

type:阈值类型

对于最后一个参数,常见的阈值类型有:

THRESH_BINARY=0,THRESH_BINARY_INV,THRESH_TRUNC,THRESH_TOZERO,THRESH_TOZERO_INV,THRESH_OTSU,THRESH_TRIANGLE,THRESH_MASK

他们的作用参见下表:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

threshold函数有两个返回值,其中第二个返回值(这里是mask)是二值化后的灰度图。当我们指定了阈值参数thresh,第一个返回值ret就是我们指定的thresh。换句话说,我们可以不指定阈值参数thresh。

通常情况,我们一般不知道设定怎样的阈值thresh才能得到比较好的二值化效果,只能去试。如对于一幅双峰图像(理解为图像直方图中存在两个峰),我们指定的阈值应尽量在两个峰之间的峰谷。这时,就可以用第四个参数THRESH_OTSU,它对一幅双峰图像自动根据其直方图计算出合适的阈值(对于非双峰图,这种方法得到的结果可能不理想)。

对于双峰图,我们需要多传入一个参数cv2.THRESH_OTSU,并且把阈值thresh设为0,算法会找到最优阈值,并作为第一个返回值ret返回。

cv2.THRESH_OTSU参数用法如下:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

效果如下:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

我的小程序: 

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」
待办计划:给自己立个小目标吧!

参考资料:《OpenCV-Python 中文教程》段力辉 译

参考博文:

图像处理之直方图处理

opencv: 阈值处理(cv2.threshold) 探究(图示+源码) 

OpenCV基础——threshold函数的使用

相关博文:opencv-python自适应阈值二值化函数cv2.adaptiveThreshold使用及效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Flash WebGame 开发经验心得和PureMVC框架细说[通俗易懂]

    Flash WebGame 开发经验心得和PureMVC框架细说[通俗易懂]→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的,而这些很大程度上又是由项目本身决定的。纵观现在国内绝大多数FLASHWEBGAME的规模和难度,我觉得前端AS人员大概需要2-7个之间,主程序有效代码一般不会超过10W行。在这种情况下,人事分工应当以功能和模块进行划分,尽量避免多人维护同一份代码,每个人各司其职,减少维护和协作的成本。这种模式非常适合人手不够,制度不健全,而且追…

    2022年5月2日
    56
  • intellij idea2021 beta 激活码_通用破解码[通俗易懂]

    intellij idea2021 beta 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    78
  • ubuntu安装pycharm快捷图标_pycharm快捷方式找不到了

    ubuntu安装pycharm快捷图标_pycharm快捷方式找不到了1、首先下载pycharm安装包,从官网下载,选择专业版。2、解压到一个文件夹,打开bin文件夹,命令行下运行pycharm.sh文件。sh./pycharm.sh3、然后出现安装过程,一步一步走下去就行,如果中间问是否需要加载以前的设置(如果以前安装过),可以加也可以不加。4、激活码选择企业版,可以输入:http://idea.imsxm.com/5、完成安装。但是这样每次打开pycharm,需

    2022年8月26日
    6
  • 【JavaScript】document对象_Cookie属性「建议收藏」

    【JavaScript】document对象_Cookie属性「建议收藏」Cookie是什么?借助document的cookie属性,Javascript程序就可以实现与www服务器一样的cookie功能,即获取当前的cookie信息和产生一个新的cookie。一个浏览器访问www服务器的每个网页文件,都是独立的,每个网页的javascript程序之间的信息也不能共享。即使是同一个网页的上一次访问和下一次访问之间也无法传递数据。同一张网页

    2022年7月27日
    9
  • vmware2021 .7最新激活码【2021最新】

    (vmware2021 .7最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWN…

    2022年3月21日
    49
  • String和JSON互转,String生成JSONObject和JSONArray[通俗易懂]

    String和JSON互转,String生成JSONObject和JSONArray[通俗易懂]一、String转JSONvarstr='[{"name":"12"}]’;varjson1=eval(‘(‘+str+’)’);varjson2=JSON.parse(str);这个JSON.parse()与eval()都可以实现,但是它们是有区别的:JSON.parse对json字符串要求比eval()更为严格,key名称(例如name)全部必须有双引号。

    2022年8月23日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号