【youcans 的 OpenCV 例程200篇】162. 全局阈值处理改进方法

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中
OpenCV 例程200篇 总目录-202205更新


【youcans 的 OpenCV 例程200篇】162. 全局阈值处理改进方法


3.4 全局阈值处理改进方法

在实际的图像处理中,噪声严重影响阈值处理的结果,严重的噪声会把简单的阈值处理问题变为不能解决的问题。

例程 11.19:全局阈值处理改进之图像平滑

对于存在噪声影响的图像,一种常用的改进方法是在阈值处理前先对图像进行平滑。

    # 11.19 全局阈值处理改进之图像平滑img = cv2.imread("../images/Fig1039a.tif", flags=0)histCV = cv2.calcHist([img], [0], None, [256], [0, 256])  # 灰度直方图scale = range(256)  # 灰度级 [0,255]totalPixels = img.shape[0] * img.shape[1]  # 像素总数totalGray = np.dot(histCV[:,0], scale)  # 内积, 总和灰度值mG = totalGray / totalPixels  # 平均灰度icv = np.zeros(256)numFt, sumFt = 0, 0for t in range(256):  # 遍历灰度值numFt += histCV[t,0]   # F(t) 像素数量sumFt += histCV[t,0] * t  # F(t) 灰度值总和pF = numFt / totalPixels  # F(t) 像素数占比mF = (sumFt/numFt) if numFt>0 else 0  # F(t) 平均灰度numBt = totalPixels-numFt  # B(t) 像素数量sumBt = totalGray - sumFt  # B(t) 灰度值总和pB = numBt / totalPixels  # B(t) 像素数占比mB = (sumBt/numBt) if numBt>0 else 0  # B(t) 平均灰度icv[t] = pF * (mF-mG)**2 + pB * (mB-mG)**2  # 灰度 t 的类间方差maxIcv = max(icv)  # ICV 的最大值maxIndex = np.argmax(icv)  # 最大值的索引# 阈值处理ret, imgBin = cv2.threshold(img, maxIndex, 255, cv2.THRESH_BINARY)  # 以 maxIndex 作为最优阈值ret, imgOtsu = cv2.threshold(img, mG, 255, cv2.THRESH_OTSU)  # 阈值分割, OTSUprint("t(maxICV)={}, retOtsu={}".format(maxIndex, round(ret)))plt.figure(figsize=(7,7))plt.subplot(221), plt.axis('off'), plt.title("Origin"), plt.imshow(img, 'gray')plt.subplot(222, yticks=[]), plt.title("Gray Hist")  # 直方图plt.plot(scale, histCV[:,0]/max(histCV))  # 灰度直方图plt.plot(scale, icv/maxIcv)  # 类间方差图plt.subplot(223), plt.title("global binary(T={})".format(maxIndex)), plt.axis('off')plt.imshow(imgBin, 'gray')plt.subplot(224), plt.title("OTSU binary(T={})".format(round(ret))), plt.axis('off')plt.imshow(imgOtsu, 'gray')plt.tight_layout()plt.show()

在这里插入图片描述


(本节完)


版权声明:

youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/124281345)

Copyright 2022 youcans, XUPT
Crated:2022-4-18


欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中
欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中

【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法
【youcans 的 OpenCV 例程200篇】159. 图像分割之全局阈值处理
【youcans 的 OpenCV 例程200篇】160. 图像处理之OTSU 方法
【youcans 的 OpenCV 例程200篇】161. OTSU 阈值处理算法的实现
【youcans 的 OpenCV 例程200篇】162. 全局阈值处理改进方法
【youcans 的 OpenCV 例程200篇】163. 基于边缘信息改进全局阈值处理
【youcans 的 OpenCV 例程200篇】164.使用 Laplace 边缘信息改进全局阈值处理
【youcans 的 OpenCV 例程200篇】165.多阈值 OTSU 处理方法
【youcans 的 OpenCV 例程200篇】166.自适应阈值处理
【youcans 的 OpenCV 例程200篇】167.基于移动平均的可变阈值处理
更多内容,请见:
【OpenCV 例程200篇 总目录-202206更新】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql优化 坑_mysql之我们终将踩过的坑(优化)

一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选…

求1+2!+3!+......+20!的和

使用java算法求求12&#xff01;3&#xff01;…20!的和 结果演示 代码展示 package com.six;public class Qiudsh {public static void main(String[] args) {long sum 0; long temp 1;for(int i1;i<20;i){temp 1;for(int j1;j<i;j){temp temp * j;}sum sumtemp…

计算机设计大赛国奖作品_6. 测试报告

计算机设计大赛国奖作品_6. 测试报告 如果本文对你有帮助&#xff0c;欢迎点赞或在评论区留言&#xff0c;可以发送完整项目文档和源程序。 本系列是2021年中国大学生计算机设计大赛作品“环境监测无人机航线优化”的相关文档&#xff0c;获得2021年西北赛区一等奖&#xff0c…

bcb隐藏窗口_BCB隐藏Windows任务栏的方法

BCB隐藏Windows任务栏的方法来源:互联网 宽屏版 评论2006-01-09 12:27:01void __fastcall TForm1::FormCreate(TObject *Sender){HWND hw;hwFindWindow("Shell_TrayWnd",0);ShowWindow(hw,SW_HIDE);}///void __fastcall TForm1::FormDestroy(TObject *Sender){HWND…

【youcans 的 OpenCV 例程200篇】163. 基于边缘信息改进全局阈值处理

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】163. 基于边缘信息改进全局阈值处理 3.4 全局阈值处理改进方法 在实际的图像处理中&#xff0c;噪声严重影响阈值处理的结果&…

Java实现八大排序算法

我对java的八大排序算法进行了总结&#xff0c;以此文展示Java八大算法 常见排序算法如下&#xff1a; 1.直接插入排序 2.希尔排序 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序 排序方法示例简介 直接插入排序 基本思想 通常人们整理桥牌的方法…

jpane1_IDEA插件开发,Jpane中集成Web页面

最近&#xff0c;项目组想开发一款插件&#xff0c;其中的功能就有面板中集成本地的Web页面&#xff0c;网上对这种的需求的方案也有很多种&#xff0c;像JEditorPane&#xff0c;DJNativeSwing&#xff0c;还有jdk自带的JavaFX的WebView&#xff0c;以下个人经历的开发过程所遇…

【youcans 的 OpenCV 例程200篇】164.使用 Laplace 边缘信息改进全局阈值处理

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】164.使用 Laplace 边缘信息改进全局阈值处理 3.4 全局阈值处理改进方法 在实际的图像处理中&#xff0c;噪声严重影响阈值处理的…

乘法口诀表

java程序之乘法口诀表的实现。 结果演示 代码演示 package com.seven;public class Cfb {public static void main(String[] args) {for(int i1;i<9;i){for(int j1;j<i;j){System.out.print(j"*"i""(j*i));}System.out.println("");}}…

mysql explain 派生表_MySQL的Explain命令

Explain命令是查看查询优化器如何决定执行查询的主要办法。调用 EXPLAIN要使用EXPLAIN&#xff0c;只需在查询中的SELECT关键字之前增加EXPLAIN。MySQL会在查询上设置一个标记。当执行查询时&#xff0c;这个标记会使其返回关于在执行计划中每一步的信息&#xff0c;而不是执行…

【youcans 的 OpenCV 例程200篇】165.多阈值 OTSU 处理方法

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】165.多阈值 OTSU 处理方法 3.5 多阈值处理方法 OTSU 方法使用最大化类间方差&#xff08;intra-class variance&#xff09;作为…

完全数

java程序实现完全数&#xff0c;那么什么是完全数的呢&#xff0c;完全数&#xff0c;又称完美数或完备数&#xff0c;是一些特殊的自然数。它所有的真因子&#xff08;即除了自身以外的约数&#xff09;的和&#xff08;即因子函数&#xff09;&#xff0c;恰好等于它本身。 …

【youcans 的 OpenCV 例程200篇】166.自适应阈值处理

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】166.自适应阈值处理 3.6 自适应阈值处理 噪声和非均匀光照等因素对阈值处理的影响很大&#xff0c;例如光照复杂时 Otsu 算法等全…

python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍

1.性能Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间&#xff0c;在字符串和整形操作上可以取得很好的优化结果。Py3.1性能比Py2.5慢15%&#xff0c;还有很大的提升空间。2.编码Py3.X源码文件默认使用utf-8编码&#xff0c;这就使得以下代码…

任一汉字在Unicode表中的顺序

查询任意一个汉字在Unicode表中的顺序并进行输出显示。 结果演示 代码演示 package com.seven; public class WeiZhi {public static void main(String[] args) {char A 我;System.out.println("汉字 我 在Unicode表中的顺序&#xff1a;"(int)A);}}了解更多关注…

【youcans 的 OpenCV 例程200篇】168.图像分割之区域生长

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列&#xff0c;持续更新中 【youcans 的 OpenCV 例程200篇】168.图像分割之区域生长 4. 区域分割的基本方法 4.1 区域生长 区域生长方法将具有相似性质的像素…

mysql未找到bcrypt_使用mysql和bcryptjs时出现意外的标识符语法错误

我在我的Express应用程序中使用Mysql使用此代码:// registerrouter.post("/register", async (req, res) > {const hashed await bcrypt.hash(req.body.pass, 10);const user {uname: req.body.uname,phone: req.body.phone,pass: hashed};let sql "INSER…

倒三角

Java实现一个倒立的三角形形状进行输出显示。根据文本提示输入一个整数&#xff0c;输入的整数是生成的倒三角形的行数&#xff0c;输入整数之后点击回车下面就会呈现出你想要得到的三角形。 结果演示 代码演示 package com.eight; import java.util.Scanner; public class …

挑战杯创业计划书_基于云计算的下料优化软件_1. 执行总结

本系列是2021年“挑战杯"大学生创业计划竞赛参赛作品。学生习作,只供大家参考。 如果本文对你有帮助,请你点赞或在评论区留言,可以提供完整项目文档和源程序。 挑战杯创业计划书_基于云计算的下料优化软件_1. 执行总结 [挑战杯创业计划书_基于云计算的下料优化软件_2.…

mysql中文注入_SQL注入之Mysql报错注入

——志向和热爱是伟大行为的双翼。昨天偷懒了没学什么东西&#xff0c;先自我反省一下 - -。今天认真的学习了一下Mysql报错注入利用方法及原理&#xff0c;好久之前就像认真的学一下这个了&#xff0c;是在上海市大学生网络安全大赛中遇到的web100。当时懵逼状态&#xff0c;被…