IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 图像分割-阈值分割-python-opencv -> 正文阅读

[人工智能]图像分割-阈值分割-python-opencv

图像分割是计算机视觉最基础的任务。在图像分割中,最基础的方法便是阈值分割。阈值分割,顾名思义就是使用一个阈值将图像背景和前景分开。OSTU,即大津法是阈值分割算法中常用的算法之一。总体而言,大津法的思路是寻找一个可以使得背景和前景两类像素之间类间距离最大化。详细的思路如下:

我们定义前景类为C_{1},总共有n_{1}个像素,背景类为C_{2}?, 总共有n_{2}个像素。那么这种图像一个有N=n_{1}+n_{2}个像素。

对于C_{1},其像素的概率为P_{1}, 其灰度平均值为m_{1}?,?对于C_{2},其像素的概率为P_{2}, 其灰度平均值为m_{2}, 那么所有它们的方差为:

\sigma ^2 =\sum_{i\in C_{1}} P_{i}(i-m_{1})^2 +\sum_{i\in C_{2}} P_{i}(i-m_{2})^2

其中,P_{i}表示灰度值为i的像素的比例,i 为灰度值。我们的目的即使找到一个阈值K,低于K的像素归为C_{1}, 大于K归为C_{2}类 ,从而使得\sigma ^2最大。我们可以表达为:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\arg\max_{K} \sigma ^2

?对于如何寻找最佳的K,对于一张灰度图像,其灰度值范围在0-255之间,我们可以遍历这256个值来寻找最佳的K。如果想要减少计算量,那么最简单的方法便是绘制灰度直方图,找到两个峰之间的谷,取一定范围遍历,寻找最佳的K。

import  cv2
import numpy  as np


def get_mean(histogram):
    total=np.sum(histogram)
    mean=0
    for i in range(len(histogram)):
        mean+=(histogram[i]/total)*i
    return mean
def get_variance(histogram,mean):
    total=np.sum(histogram)
    variance=0
    for i in range(len(histogram)):
        variance+=(histogram[i]/total)*((i-mean)**2)
    return variance
def OSTU(img):
    h,w=img.shape
    total=h*w
    best_k=0
    max_variance=-10000
    histogram=np.zeros(256)
    for i in range(h):
        for j in range(w):
            histogram[img[i,j]]+=1
    for k in range(256):
        bg=histogram[:k]
        object=histogram[k:]
        bg_mean=get_mean(bg)
        object_mean=get_mean(object)
        bg_variance=get_variance(bg,bg_mean)
        object_variance=get_variance(object,object_mean)
        variance=bg_variance+object_variance
        if(variance>max_variance):
            max_variance=variance
            best_k=k
    img[img>=best_k]=255
    img[img<best_k]=0
    return img

            

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:17:35  更:2021-07-16 11:18:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 21:30:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码