因为注释给的很详细,所以直接给代码:

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、图片转成任意像素等功能)——可满足一般图片处理要求...相关推荐

  1. 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )

    文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...

  2. lua检测表中是否有某个值_Lua检测数组(tabble)中是否包含某个值

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. 图片转文字怎么在线转换?分享几个好用的方法

    ​现在很多一些优美的配图都有一些令人很容易产生共鸣的一段语句,一些励志的文案.不知道有没有小伙伴和我一样遇到过想要扒下来文案的图片.有些文案内容或者是比较长或者是一些外文的,对比着输出来会比较麻烦,那 ...

  4. 二维码在线生成api

    二维码在线生成api,执行生成二维码,直接用标签调用接口地址即可. 接口名称:二维码在线生成api 接口平台:聚合数据 接口地址:http://liantu.api.juhe.cn/api.php 支 ...

  5. C++实现二叉搜索树的查找(附完整源码)

    二叉搜索树的查找 二叉搜索树的查找算法 二叉搜索树的查找算法完整源码 二叉搜索树的查找算法 在二叉搜索树 b 中查找 x 的过程为: 若 b 是空树,则搜索失败,否则: 若 x 等于 b 的根节点的数 ...

  6. 高通音频驱动录音流程(二)

    高通音频驱动录音流程(二) 目录 高通音频驱动录音流程(二) Front End CPU的注册 Front End Codec注册 Front End PCM的注册 Front End CPU的注册 ...

  7. matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走

    大津法二值化 小发言 本份代码完全自写,由于要输入输出图片,故采用的是matlab语言,但是除了使用imread()和imshow()函数之外,所有代码全部是自己写的,并且与matlab自带库函数做了 ...

  8. 图片怎么修改成750x750像素?

    图片的使用已经渗透到我们生活和工作以及学习的方方面面了,在使用图片的时候,很多平台会对图片的尺寸做出具体的要求,就像我们填表时使用的照片规定一寸,二寸那样,网上使用图片也有对应的尺寸要求.比如最近有个 ...

  9. php如何实现上传照片功能_php如何实现图片上传功能

    php实现图片上传功能的方法:首先创建存储图片的文件夹:然后创建HTML部分:接着创建"uploadHandler.php"文件:最后将文件的图片格式与数组中的元素进行比较并实现上 ...

最新文章

  1. python基础练习(七)
  2. STM32F103固件库编程:关于core_cm3.c的错误
  3. MATLAB实战系列(二十二)-matlab三维图形绘制案例最全集锦(毕设和数学建模必看)
  4. 区块链BaaS云服务(36)欧盟“用户身份认证”ESSIF
  5. 全球增长最快域名解析商Top10:DNSPod新网上榜
  6. Summary Ranges
  7. linux下使用python3_Linux上python3的安装和使用
  8. olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
  9. win 杀掉占用的端口_Windows netstat 查看端口、进程占用、杀掉进程
  10. Focal Loss 的Pytorch 实现以及实验
  11. mysql xtrabackup_mysql备份
  12. .net @什么意思_.NET和F#周报2019-4 各地微软技术俱乐部汇总 ML.NET 0.10
  13. 语音识别_qq语音识别_js语音识别 - 云+社区 - 腾讯云
  14. 高斯-勒让德积分学习
  15. 文件传输的服务器软件有哪些,好用的数据传输软件有哪些?专业的数据传输软件排行榜...
  16. 解决微信调整字体大小导致页面样式混乱的问题
  17. macos mojave_如何选择退出macOS Mojave Beta
  18. Linux学习之安装配置VM虚拟机
  19. 我国留学低龄化趋势显著-家长失望国内应试教育-留学-低龄化-教育改革
  20. 利用VS2019对程序进行时间性能分析

热门文章

  1. 跨模态检索Triplet Fusion Network Hashing for Unpaired Cross-Modal Retrieval
  2. C语言指针小结(一)---- *p++与*++p;(*p)++ 与 ++(*p)的解释
  3. “区块链”一词不过是唬人的空壳子
  4. 浅析TypeScript setTimeout语法
  5. PS/2 标准键盘不可以的详细图解
  6. taro3-不使用-typescript-的情况下使用-taro-ui-时报错
  7. mysql workbench 创建ipc_一次IPC无法创建的问题
  8. C语言:rand取随机数用法
  9. 30岁,真的不适合转行做IT了么?
  10. Apache Spark 在eBay 的优化