zoukankan      html  css  js  c++  java
  • Python中的图像处理

    1. 下载并显示图像

    In [0]: #此处网址可以随意代换

    !wget https://images2015.cnblogs.com/blog/140867/201601/140867-20160111162610585-190024450.png 

    In [0]: #io.imread调用上面saving to后面的文件名

    import matplotlib
    import numpy as np
    import matplotlib.pyplot as plt
    
    import skimage
    from skimage import data
    from skimage import io
    colony = io.imread('140867-20160111162610585-190024450.png')
    print(type(colony))
    print(colony.shape)

    In [0]: #即可显示图片

    # Plot all channels of a real image
    plt.subplot(121)
    plt.imshow(colony[:,:,:])
    plt.title('3-channel image')
    plt.axis('off')
    
    # Plot one channel only
    plt.subplot(122)
    plt.imshow(colony[:,:,0])
    plt.title('1-channel image')
    plt.axis('off');

    2. 读取并改变图像像素值

    In [0]:

    # Get the pixel value at row 10, column 10 on the 10th row and 20th column
    camera = data.camera()
    print(camera[10, 20])
    
    # Set a region to black
    camera[30:100, 10:100] = 0
    plt.imshow(camera, 'gray')

    # 将前200行设置为黑色
    camera = data.camera()
    camera[:200] = 0
    plt.imshow(camera, 'gray')

    # 将较暗像素设置为白色(255)
    camera = data.camera()
    mask = camera < 80
    camera[mask] = 255
    plt.imshow(camera, 'gray')

    # 改变图片颜色
    cat = data.chelsea()
    plt.imshow(cat)

    # 将较暗像素设置为红色(255)
    red_cat = cat.copy() reddish = cat[:, :, 0] > 160 red_cat[reddish] = [255, 0, 0] plt.imshow(red_cat)

    # Change RGB color to BGR for openCV
    BGR_cat = cat[:, :, ::-1]
    plt.imshow(BGR_cat)

    3. 转换图像数据类型

    • img_as_float Convert to 64-bit floating point.
    • img_as_ubyte Convert to 8-bit uint.
    • img_as_uint Convert to 16-bit uint.
    • img_as_int Convert to 16-bit int.
      from skimage import img_as_float, img_as_ubyte
      float_cat = img_as_float(cat)
      uint_cat = img_as_ubyte(float_cat)

    4. 显示图像直方图

    img = data.camera()
    plt.hist(img.ravel(), bins=256, histtype='step', color='black');

    5. 图像分割

    # 利用群体图像进行分割
    colony = io.imread('yeast_colony_array.jpg')
    
    # 绘制直方图
    img = skimage.color.rgb2gray(colony)
    plt.hist(img.ravel(), bins=256, histtype='step', color='black');

    # Use thresholding
    plt.imshow(img>0.5)

  • 相关阅读:
    关于Python虚拟环境与包管理你应该知道的事
    你是否真的了解全局解析锁(GIL)
    谈谈装饰器的实现原理
    快速了解Python并发编程的工程实现(下)
    快速了解Python并发编程的工程实现(上)
    简单了解一下事件循环(Event Loop)
    为何你还不懂得如何使用Python协程
    一文搞懂Python可迭代、迭代器和生成器的概念
    源码分析Retrofit请求流程
    一份程序猿单词列表(updating)
  • 原文地址:https://www.cnblogs.com/wisdom-jie/p/14097901.html
Copyright © 2011-2022 走看看