php 图片二值化在线,图片处理完整流程(包含二值化处理、对黑白照片降噪、边缘去黑像素、三通道转为一通道、图片转array、图片转成任意像素等功能)——可满足一般图片处理要求...
因为注释给的很详细,所以直接给代码:
1 from PIL import Image
2 # 二值化处理
3
4
5 def 二值化处理(image):
6 for i in range(1, 5):
7 # 灰度图
8 lim = image.convert('L')
9 # 灰度阈值设为165,低于这个值的点全部填白色
10 threshold = 165
11 table = []
12 for j in range(256):
13 if j < threshold:
14 table.append(0)
15 else:
16 table.append(1)
17 bim = lim.point(table, '1')
18 return bim
19 def 对黑白图片进行降噪(im):
20 # 图像二值化
21 data = im.getdata()
22 w, h = im.size
23 black_point = 0
24 for x in range(1, w - 1):
25 for y in range(1, h - 1):
26 mid_pixel = data[w * y + x] # 中央像素点像素值
27 if mid_pixel < 50: # 找出上下左右四个方向像素点像素值
28 top_pixel = data[w * (y - 1) + x]
29 left_pixel = data[w * y + (x - 1)]
30 down_pixel = data[w * (y + 1) + x]
31 right_pixel = data[w * y + (x + 1)]
32 # 判断上下左右的黑色像素点总个数
33 if top_pixel < 10:
34 black_point += 1
35 if left_pixel < 10:
36 black_point += 1
37 if down_pixel < 10:
38 black_point += 1
39 if right_pixel < 10:
40 black_point += 1
41 if black_point < 1:
42 im.putpixel((x, y), 255)
43 # print(black_point)
44 black_point = 0
45 return im
46
47 def 边缘黑像素(im):
48 # 去除干扰线
49
50 # 图像二值化
51 data = im.getdata()
52 w, h = im.size
53 black_point = 0
54 for x in range(1, w - 1):
55 for y in range(1, h - 1):
56 if x < 2 or y < 2:
57 im.putpixel((x - 1, y - 1), 255)
58 if x > w - 3 or y > h - 3:
59 im.putpixel((x + 1, y + 1), 255)
60 return im
61
62 if __name__ =='__main__':
63 image = Image.open('../../data/test/8.png')
64 im_1=二值化处理(image)
65 im_2=对黑白图片进行降噪(im_1)
66 im_3=边缘黑像素(im_2)
67
68 im_3.save('../../data/test/8_降噪.png')
处理前
处理后:
转型后:
来源:https://www.cnblogs.com/smartisn/p/12629902.html
php 图片二值化在线,图片处理完整流程(包含二值化处理、对黑白照片降噪、边缘去黑像素、三通道转为一通道、图片转array、图片转成任意像素等功能)——可满足一般图片处理要求...相关推荐
- 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )
文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...
- lua检测表中是否有某个值_Lua检测数组(tabble)中是否包含某个值
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 图片转文字怎么在线转换?分享几个好用的方法
现在很多一些优美的配图都有一些令人很容易产生共鸣的一段语句,一些励志的文案.不知道有没有小伙伴和我一样遇到过想要扒下来文案的图片.有些文案内容或者是比较长或者是一些外文的,对比着输出来会比较麻烦,那 ...
- 二维码在线生成api
二维码在线生成api,执行生成二维码,直接用标签调用接口地址即可. 接口名称:二维码在线生成api 接口平台:聚合数据 接口地址:http://liantu.api.juhe.cn/api.php 支 ...
- C++实现二叉搜索树的查找(附完整源码)
二叉搜索树的查找 二叉搜索树的查找算法 二叉搜索树的查找算法完整源码 二叉搜索树的查找算法 在二叉搜索树 b 中查找 x 的过程为: 若 b 是空树,则搜索失败,否则: 若 x 等于 b 的根节点的数 ...
- 高通音频驱动录音流程(二)
高通音频驱动录音流程(二) 目录 高通音频驱动录音流程(二) Front End CPU的注册 Front End Codec注册 Front End PCM的注册 Front End CPU的注册 ...
- matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走
大津法二值化 小发言 本份代码完全自写,由于要输入输出图片,故采用的是matlab语言,但是除了使用imread()和imshow()函数之外,所有代码全部是自己写的,并且与matlab自带库函数做了 ...
- 图片怎么修改成750x750像素?
图片的使用已经渗透到我们生活和工作以及学习的方方面面了,在使用图片的时候,很多平台会对图片的尺寸做出具体的要求,就像我们填表时使用的照片规定一寸,二寸那样,网上使用图片也有对应的尺寸要求.比如最近有个 ...
- php如何实现上传照片功能_php如何实现图片上传功能
php实现图片上传功能的方法:首先创建存储图片的文件夹:然后创建HTML部分:接着创建"uploadHandler.php"文件:最后将文件的图片格式与数组中的元素进行比较并实现上 ...
最新文章
- python基础练习(七)
- STM32F103固件库编程:关于core_cm3.c的错误
- MATLAB实战系列(二十二)-matlab三维图形绘制案例最全集锦(毕设和数学建模必看)
- 区块链BaaS云服务(36)欧盟“用户身份认证”ESSIF
- 全球增长最快域名解析商Top10:DNSPod新网上榜
- Summary Ranges
- linux下使用python3_Linux上python3的安装和使用
- olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
- win 杀掉占用的端口_Windows netstat 查看端口、进程占用、杀掉进程
- Focal Loss 的Pytorch 实现以及实验
- mysql xtrabackup_mysql备份
- .net @什么意思_.NET和F#周报2019-4 各地微软技术俱乐部汇总 ML.NET 0.10
- 语音识别_qq语音识别_js语音识别 - 云+社区 - 腾讯云
- 高斯-勒让德积分学习
- 文件传输的服务器软件有哪些,好用的数据传输软件有哪些?专业的数据传输软件排行榜...
- 解决微信调整字体大小导致页面样式混乱的问题
- macos mojave_如何选择退出macOS Mojave Beta
- Linux学习之安装配置VM虚拟机
- 我国留学低龄化趋势显著-家长失望国内应试教育-留学-低龄化-教育改革
- 利用VS2019对程序进行时间性能分析
热门文章
- 跨模态检索Triplet Fusion Network Hashing for Unpaired Cross-Modal Retrieval
- C语言指针小结(一)---- *p++与*++p;(*p)++ 与 ++(*p)的解释
- “区块链”一词不过是唬人的空壳子
- 浅析TypeScript setTimeout语法
- PS/2 标准键盘不可以的详细图解
- taro3-不使用-typescript-的情况下使用-taro-ui-时报错
- mysql workbench 创建ipc_一次IPC无法创建的问题
- C语言:rand取随机数用法
- 30岁,真的不适合转行做IT了么?
- Apache Spark 在eBay 的优化