资源简介

python+numpy实现自适应阈值分割函数OSTU,巩固编程基础以及图像处理基础

资源截图

代码片段和文件信息

import numpy as np
import cv2
def Ostu(image):
    ‘‘‘
    最大类间方差:
    E=left_n/size*np.square(left_p-average)+right_n/size*np.square(right_p-average)求这个的最大值
    left_n:小于所选阈值的像素点的个数
    right_n:大于所选阈值的像素点的个数
    size:图像总像素点的个数
    left_p:小于该阈值的像素点的均值
    right_p:大于该阈值的像素点的均值
    average:图像整体的像素均值
    需要注意的是当图像太大的时候不要超出整数表示范围,所以需要一些细节上的技巧
    :param image: 
    :return: 
    ‘‘‘
    shape=np.shape(image)
    size=np.size(image)
    rowscols=shape[0]shape[1]
    #灰度直方图
    hist=[0 for x in range(256)]
    #均值
    average=0
    for i in range(rows):
        for j in range(cols):
            val=image[ij]
            average+=image[ij]/size
            hist[val]+=1
    m=-np.inf
    thresh=0
    for i in range(256):
        left_n=np.

评论

共有 条评论