资源简介
python OpenCV将图像进行 二值化(黑白化),然后返回黑白图像。
代码片段和文件信息
import cv2
import numpy as np
import math
import copy
def produceThresholds(crop_img):
crop = copy.deepcopy(crop_img)
thresholds = []
threshold0 = Wolf(crop 3 18 18 0.05 + (0 * 0.35) 128)
threshold0 = cv2.bitwise_not(threshold0)
thresholds.append(threshold0)
threshold1 = Wolf(crop 3 22 22 0.05 + (1 * 0.35) 128)
threshold1 = cv2.bitwise_not(threshold1)
thresholds.append(threshold1)
threshold2 = Wolf(crop 2 12 12 0.18 128)
threshold2 = cv2.bitwise_not(threshold2)
thresholds.append(threshold2)
return thresholds
def calcLocalStats(im map_m map_s winx winy):
rows cols = im.shape
im_sum im_sum_sq = cv2.integral2(im sqdepth=cv2.CV_64F)
wxh = winx / 2
wyh = winy / 2
x_firstth = wxh
y_lastth = rows - wyh - 1
y_firstth = wyh
winarea = float(winx * winy)
max_s = 0
j = y_firstth
for j in range(y_firstth y_lastth + 1):
sum = 0.0
sum_sq = 0.0
sum = im_sum.item(j - wyh + winy winx) - im_sum.item(j - wyh winx) - \
im_sum.item(j - wyh + winy 0) + im_sum.item(j - wyh 0)
sum_sq = im_sum_sq.item(j - wyh + winy winx) - im_sum_sq.item(
j - wyh winx) - im_sum_sq.item(j - wyh + winy 0) + im_sum_sq.item(j - wyh 0)
m = sum / winarea
s = math.sqrt((sum_sq - m * sum) / winarea)
if s > max_s:
max_s = s
map_m.itemset((j x_firstth) m)
map_s.itemset((j x_firstth) s)
maxrange = cols - winx + 1
for i in range(1 maxrange):
sum -= im_sum.item(j - wyh + winy i) - im_sum.item(j - wyh i) - im_sum.item(j - wyh + winy i - 1) \
+ im_sum.item(j - wyh i - 1)
sum += im_sum.item(j - wyh + winy i + winx) - im_sum.item(j - wyh i + winx) - \
im_sum.item(j - wyh + winy i + winx - 1) + \
im_sum.item(j - wyh i + winx - 1)
sum_sq -= im_sum_sq.item(j - wyh + winy i) - im_sum_sq.item(
j - wyh i) - im_sum_sq.item(j - wyh + winy i - 1) + im_sum_sq.item(j - wyh i - 1)
sum_sq += im_sum_sq.item(j - wyh + winy i + winx) - im_sum_sq.item(j - wyh i + winx) - \
im_sum_sq.item(j - wyh + winy i + winx - 1) + \
im_sum_sq.item(j - wyh i + winx - 1)
m = sum / winarea
s = math.sqrt(abs(sum_sq - m * sum) / winarea)
if s > max_s:
max_s = s
map_m.itemset((j i + wxh) m)
map_s.itemset((j i + wxh) s)
return max_s map_m map_s im
def Wolf(image version winx winy k dR):
img = copy.deepcopy(image)
m = 0.0
max_s = 0.0
th = 0
wxh = winx / 2
wyh = winy / 2
x_firstth = wxh
x_lastth = img.shape[1] - wxh - 1
y_lastth = im
- 上一篇:PythonTCP编程
- 下一篇:FaceClustering.zip
相关资源
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
- 量化交易(附python常见函数的使用方
评论
共有 条评论