图像处理------基于Otsu阈值二值化

73 篇文章 51 订阅 ¥9.90 ¥99.00

一:基本原理

该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现。

Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重

要的部分是寻找图像二值化阈值,然后根据阈值将图像分为前景(白色)

或者背景(黑色)。假设有6x6的灰度图像,其像素数据及其对应的直方

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Otsu算法是一种经典的图像阈值分割算法,主要思想是寻找图像的最佳阈值,使得分割后的两部分类内方差最小,类间方差最大。 以下是Otsu算法的基本步骤: 1.计算图像的直方图,即统计每个像素值出现的次数。 2.对每个像素值,计算其出现的概率。 3.对每个像素值,计算其和0像素值之间的类间方差。 4.找到使类间方差最大的阈值,即为图像的最佳阈值。 5.将图像按照最佳阈值进行二值化处理,得到分割后的图像。 下面是Python实现代码: ```python import numpy as np from PIL import Image def otsu_threshold(img_path): # 读入图像 img = np.array(Image.open(img_path).convert('L')) # 计算直方图和像素总数 hist, bins = np.histogram(img, bins=256) total_pixels = img.shape[0] * img.shape[1] # 计算每个像素值出现的概率和平均灰度值 probabilities = hist / total_pixels mean_gray = np.sum(bins[:-1] * probabilities) # 初始化最佳阈值和最大类间方差 best_threshold = 0 max_variance = 0 # 遍历所有可能的阈值 for threshold in range(256): # 计算类内和类间方差 w0 = np.sum(probabilities[:threshold]) w1 = np.sum(probabilities[threshold:]) if w0 == 0 or w1 == 0: continue mean0 = np.sum(bins[:threshold] * probabilities[:threshold]) / w0 mean1 = np.sum(bins[threshold:] * probabilities[threshold:]) / w1 variance = w0 * w1 * (mean0 - mean1) ** 2 # 更新最佳阈值和最大类间方差 if variance > max_variance: best_threshold = threshold max_variance = variance # 二值化处理 img_binary = np.zeros_like(img) img_binary[img > best_threshold] = 255 # 返回二值化后的图像和最佳阈值 return img_binary, best_threshold # 测试代码 if __name__ == '__main__': img_path = 'test.jpg' img_binary, best_threshold = otsu_threshold(img_path) print('Best threshold:', best_threshold) Image.fromarray(img_binary).show() ``` 注意:在计算类内和类间方差时,需要判断分母是否为0,以避免出现除数为0的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毛毛虫的爹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值