<bdo id='b1Epi'></bdo><ul id='b1Epi'></ul>

  • <tfoot id='b1Epi'></tfoot>
  • <small id='b1Epi'></small><noframes id='b1Epi'>

      1. <i id='b1Epi'><tr id='b1Epi'><dt id='b1Epi'><q id='b1Epi'><span id='b1Epi'><b id='b1Epi'><form id='b1Epi'><ins id='b1Epi'></ins><ul id='b1Epi'></ul><sub id='b1Epi'></sub></form><legend id='b1Epi'></legend><bdo id='b1Epi'><pre id='b1Epi'><center id='b1Epi'></center></pre></bdo></b><th id='b1Epi'></th></span></q></dt></tr></i><div id='b1Epi'><tfoot id='b1Epi'></tfoot><dl id='b1Epi'><fieldset id='b1Epi'></fieldset></dl></div>

        <legend id='b1Epi'><style id='b1Epi'><dir id='b1Epi'><q id='b1Epi'></q></dir></style></legend>

        对python PLT中的image和skimage处理图片方法详解

        时间:2023-12-16
        <tfoot id='OZjgf'></tfoot>

      2. <legend id='OZjgf'><style id='OZjgf'><dir id='OZjgf'><q id='OZjgf'></q></dir></style></legend>

                <bdo id='OZjgf'></bdo><ul id='OZjgf'></ul>
              • <small id='OZjgf'></small><noframes id='OZjgf'>

                <i id='OZjgf'><tr id='OZjgf'><dt id='OZjgf'><q id='OZjgf'><span id='OZjgf'><b id='OZjgf'><form id='OZjgf'><ins id='OZjgf'></ins><ul id='OZjgf'></ul><sub id='OZjgf'></sub></form><legend id='OZjgf'></legend><bdo id='OZjgf'><pre id='OZjgf'><center id='OZjgf'></center></pre></bdo></b><th id='OZjgf'></th></span></q></dt></tr></i><div id='OZjgf'><tfoot id='OZjgf'></tfoot><dl id='OZjgf'><fieldset id='OZjgf'></fieldset></dl></div>

                    <tbody id='OZjgf'></tbody>

                  python PLT中的image和skimage处理图片方法详解

                  前言

                  在Python中,matplotlib.pyplot(简称mpl或plt)和scikit-image(简称skimage)是常用的处理图像和可视化的库。本篇文章将详细讲解matplotlib.pyplot和scikit-image的常用API,以及使用案例。

                  matplotlib.pyplot处理图片

                  1、读取和显示图像

                  读取和显示图像是图像处理中的基础操作,最基本的方法如下:

                  import matplotlib.pyplot as plt
                  import numpy as np
                  
                  # 读取图像
                  img = plt.imread('test.jpg')
                  
                  # 显示图像
                  plt.imshow(img)
                  plt.show()
                  

                  这里使用plt.imread读取图像,返回的是一个numpy数组。plt.imshow用来显示图片。

                  2、调整图像大小

                  修改图像大小的方法有很多,这里只介绍几种常用方法:

                  import matplotlib.pyplot as plt
                  
                  # 读取图像
                  img = plt.imread('test.jpg')
                  
                  # 调整大小为原来的2倍
                  img_resized = plt.resize(img, (img.shape[1] * 2, img.shape[0] * 2))
                  
                  # 调整大小为256x256像素
                  img_resize = plt.resize(img, (256, 256))
                  
                  # 显示调整大小后的图像
                  plt.imshow(img_resized)
                  plt.show()
                  

                  其中,第一种方法可以将图像的宽和高都扩大2倍,第二种方法可以将图像大小修改为256x256像素。需要注意的是,如果对图像尺寸进行缩放,会造成图像失真。因此,在对图像进行缩放操作时,需要根据具体情况权衡。

                  3、图像裁剪

                  要裁剪图像,需要指定裁剪的区域。这里提供一种裁剪正方形区域的方法:

                  import matplotlib.pyplot as plt
                  
                  # 读取图像
                  img = plt.imread('test.jpg')
                  
                  # 裁剪正方形区域
                  h, w = img.shape[:2]
                  left, right, top, bottom = w // 4, w // 4 * 3, h // 4, h // 4 * 3
                  img_crop = img[top:bottom, left:right, :]
                  
                  # 显示裁剪后的图像
                  plt.imshow(img_crop)
                  plt.show()
                  

                  这里裁剪的区域是原图像的四分之一大小。其中,h和w表示原图像的高和宽。

                  示例1:生成包含噪声的图片

                  import matplotlib.pyplot as plt
                  import numpy as np
                  
                  # 生成随机噪声
                  noise = np.random.normal(loc=0, scale=0.1, size=(512, 512))
                  
                  # 读取图像
                  img = plt.imread('test.jpg')
                  
                  # 对图像进行噪声处理
                  img_noise = np.clip(img + noise, 0, 1)
                  
                  # 显示噪声处理后的图像
                  plt.imshow(img_noise)
                  plt.show()
                  

                  这里使用np.random.normal生成符合正态分布的随机噪声,并使用np.clip函数将处理后的图像像素值限制在0-1之间。

                  scikit-image处理图片

                  1、读取和显示图像

                  使用scikit-image读取和显示图像的方法如下:

                  from skimage import io
                  import matplotlib.pyplot as plt
                  
                  # 读取图像
                  img = io.imread('test.jpg')
                  
                  # 显示图像
                  plt.imshow(img)
                  plt.show()
                  

                  其中,io.imread用来读取图像。与matplotlib.pyplot类似,plt.imshow用来显示图像。

                  2、调整图像大小

                  调整图像大小的方法与matplotlib.pyplot类似,这里不再赘述。

                  3、图像裁剪

                  使用scikit-image裁剪图像的方法如下:

                  from skimage import io
                  import matplotlib.pyplot as plt
                  
                  # 读取图像
                  img = io.imread('test.jpg')
                  
                  # 裁剪图像
                  img_crop = img[100:300, 200:400]
                  
                  # 显示裁剪后的图像
                  plt.imshow(img_crop)
                  plt.show()
                  

                  这里裁剪的区域是从第100行到第300行、从第200列到第400列的图像区域。

                  示例2:使用Otsu算法实现图像二值化

                  from skimage import io, filters
                  import matplotlib.pyplot as plt
                  
                  # 读取图像
                  img = io.imread('test.jpg', as_gray=True)
                  
                  # 图像二值化
                  threshold = filters.threshold_otsu(img)
                  img_binary = img > threshold
                  
                  # 显示二值化后的图像
                  plt.imshow(img_binary, cmap='gray')
                  plt.show()
                  

                  这里使用scikit-image的filters.threshold_otsu函数进行自适应阈值处理,将图像二值化。最后使用plt.imshow函数显示二值化后的图像。

                  总结

                  本篇文章对matplotlib.pyplot和scikit-image的常用API进行了详细讲解,并提供了示例代码。使用这些API可以实现图像处理和可视化的各种操作。

                  上一篇:python识别文字(基于tesseract)代码实例 下一篇:Python中线程threading.Thread的使用详解

                  相关文章

                  <tfoot id='tIhgf'></tfoot>
                  • <bdo id='tIhgf'></bdo><ul id='tIhgf'></ul>

                  <small id='tIhgf'></small><noframes id='tIhgf'>

                • <legend id='tIhgf'><style id='tIhgf'><dir id='tIhgf'><q id='tIhgf'></q></dir></style></legend>

                  1. <i id='tIhgf'><tr id='tIhgf'><dt id='tIhgf'><q id='tIhgf'><span id='tIhgf'><b id='tIhgf'><form id='tIhgf'><ins id='tIhgf'></ins><ul id='tIhgf'></ul><sub id='tIhgf'></sub></form><legend id='tIhgf'></legend><bdo id='tIhgf'><pre id='tIhgf'><center id='tIhgf'></center></pre></bdo></b><th id='tIhgf'></th></span></q></dt></tr></i><div id='tIhgf'><tfoot id='tIhgf'></tfoot><dl id='tIhgf'><fieldset id='tIhgf'></fieldset></dl></div>