网站架构图,网站图片不轮播,网站列表页框架布局原则,顶尖的设计网站欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列#xff0c;持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】162. 全局阈值处理改进方法 3.4 全局阈值处理改进方法
在实际的图像处理中#xff0c;噪声严重影响阈值处理的结果#xff0c;… 欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列持续更新中 OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】162. 全局阈值处理改进方法 3.4 全局阈值处理改进方法
在实际的图像处理中噪声严重影响阈值处理的结果严重的噪声会把简单的阈值处理问题变为不能解决的问题。
例程 11.19全局阈值处理改进之图像平滑
对于存在噪声影响的图像一种常用的改进方法是在阈值处理前先对图像进行平滑。 # 11.19 全局阈值处理改进之图像平滑img cv2.imread(../images/Fig1039a.tif, flags0)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 numFt0 else 0 # F(t) 平均灰度numBt totalPixels-numFt # B(t) 像素数量sumBt totalGray - sumFt # B(t) 灰度值总和pB numBt / totalPixels # B(t) 像素数占比mB (sumBt/numBt) if numBt0 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()本节完 版权声明
youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/124281345)
Copyright 2022 youcans, XUPT Crated2022-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更新】