一天一个小技巧(4)——利用Python和MATLAB进行图片二值化

转载请注明作者和出处:https://blog.csdn.net/qq_28810395
Python版本: Python3.x
运行平台: Windows 10
IDE: Pycharm profession 2019 Matlab2010a

前言

  由于在一些软件和处理上都仅要求是黑白图片,那么掌握一种图片二值化的方法是必要的,常用的是PS进行图片转换,但是作为一名码农,电脑未安装PS(仅代表个人),所以利用手头的软件进行图片黑白转换。下面将介绍两种方法。

Python对图片二值化处理

  首先准备一个图片

然后进入python编译器进行下述操作,这里举例为Pycharm

  1. 创建工程并创建py文本。
    一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第1张图片一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第2张图片
  2. 添加三方库,File–>Setting。一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第3张图片
    一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第4张图片
  3. 编写下述代码
    # 图片二值化
    # 加入PIL库
    from PIL import Image
    # 添加改变的图片地址
    img = Image.open('C:/Users/Administrator/Desktop/1.png')
    # 模式L”转为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。
    image = img.convert('L')
    # 保存灰度图
    image.save("11.png")
    # 自定义灰度界限,大于这个值为黑色,小于这个值为白色
    threshold = 50
    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    print(table)
    # 将灰度图像转换为bitlevel图像( 模式"1") 时,所有非零值都设置为 255 ( 白色),存储二值化图片,
    photo = image.point(table, '1')
    print(photo)
    photo.save("22.png")
    
  4. 结果如图所示,图一灰度图 ,图二二值化图
    一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第5张图片
    如果想黑白转换下可以修改上述代码中这部分
    for i in range(256):
        if i < threshold:
            table.append(1)
        else:
            table.append(0)
    
    图片就会变这样子
    一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第6张图片

Matlab对图片进行二值化处理

  这个相对于Python解决更简单,但是缺少了Python的阈值调节,对一些想自己定义阈值的二值化不友好。下面讲解一下流程

  1. 在Matlab编译器中输入下述代码
    A=imread('C:\Users\Administrator\Desktop\1.png');
       thresh=graythresh(A);%确定二值化阈值
       B=im2bw(A,thresh);%对图像二值化
       imshow(B);%显示二值化图片`
    
  2. 将下述图片保存即可
    一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第7张图片

抠图

  对于有抠图需求的这里提供个传送门,可以直接进入网页抠图。抠图传送门
一天一个小技巧(4)——利用Python和MATLAB进行图片二值化_第8张图片

参考信息

https://blog.csdn.net/t8116189520/article/details/80271804
https://jingyan.baidu.com/article/9989c746376a39f648ecfebf.html

你可能感兴趣的:(实用小技巧)