python图片二值化
2015-10-26 19:01
591 查看
导入相关库
stdfilt函数(详见:链接一、链接二)
localmean函数
二值化函数
二值化
import os import cv2 import numpy as np
stdfilt函数(详见:链接一、链接二)
def stdfilt(img, mask): n = mask.sum() n1 = n - 1 c1 = cv2.filter2D(img**2, -1, mask / n1, borderType=cv2.BORDER_REFLECT) c2 = cv2.filter2D(img, -1, mask, borderType=cv2.BORDER_REFLECT)**2 / (n * n1) sig = np.sqrt(np.maximum(c1 - c2, 0)) return sig
localmean函数
def localmean(img, mask): lm = cv2.filter2D( img, -1, mask / mask.sum(), borderType=cv2.BORDER_REPLICATE) return lm
二值化函数
def img_binary(img, w_size=3, w_sig=0.9, w_lm=0.9): if len(img.shape) != 2: img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) img = img / 255.0 mask = np.ones(w_size) sig = stdfilt(img, mask) if w_lm == 0: w_lm = 1 lm = np.mean(img) else: lm = localmean(img, mask) img = 255 * ((img > sig * w_sig) & (img > w_lm * lm)) return img
二值化
if __name__ == '__main__': #False表示读取为灰度图... img = cv2.imread(filepath, False) img = img_binary(img, w_size=3, w_sig=0.9, w_lm=0.9)
相关文章推荐
- 【详解】Python写爬虫脚本的教程
- Python的getattr(),setattr(),delattr(),hasattr()
- 安装python及web.py
- Python的运行时方法补丁技术
- Python访问限制
- Python基础(十一) 使用xml.dom 创建XML文件与解析
- python challenge
- python 对象
- Python上下文管理器
- python基础学习(根据廖雪峰的博客练习)
- Python Delegate抽象超类
- tkinter entry组件
- How can I get a String from HID device in Python with evdev?
- python学习记录之1026
- python学习笔记-Day01
- python psutil模块用法学习
- Python -- Web -- WSGI
- Python核心数据类型之字典15
- python 简单函数之字符操作
- python中对文件、文件夹(文件操作函数)的操作