图像处理工具Python扩展库,你了解吗?

发表于:2022-12-28 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:梦回丶故里    来源:程序那些事儿

#
Python
分享:
  在当今这个社会,数据就是财富,数据就是金钱,一切都离不开数据,我们看到的一切图片,本质上都是数据,如何理解和处理这些图像数据是很大的难题,不过庆幸的是,在 python 中,已经有了非常丰富的扩展来帮助我们处理这些图片。
  opencv
  opencv 是一个非常流行的数据可视化图形库,它底层使用 c++进行开发,拥有非常高效的执行效率。
  安装使用它非常简单。
  pip install opencv-python
  # import opencv
  import cv2
  # Read the image
  image = cv2.imread('tesla.png')
  # grayscale the image
  gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  cv2.imshow('Original Image', image)
  cv2.imshow('Grayscale Image', gray_image)
  cv2.waitKey(0)
  cv2.destroyAllWindows()
  Pillow
  Pillow 是另一个非常流行的图像处理库,和 opencv 相比,它更加轻量级,虽然本身功能简单,但是它支持扩展,通过扩展可以执行非常强大的功能。
  pip install pillow
  from PIL import Image
  with Image.open("tesla.png") as im:
      #show the original image
      im.show("Original Image")
      #convert into grayscale
      grayscaleImg = im.convert("L")
      #show the grayscale image
      grayscaleImg.show()
  Scikit
  Scikit 是一个进行科学研究的图形处理库,旨在使用 Numpy 和 Scipy 库处理图像。它包括各种科学算法,例如分割、颜色空间操作、分析、形态学等。该库是使用 Python 和 C 编程语言编写的。它适用于所有流行的操作系统,例如 Linux、macOS 和 Windows
  pip install scikit-image
  from skimage import io
  from skimage.color import rgb2gray
  # way to load car image from file
  car = io.imread('tesla.png')[:,:,:3]
  #convert into grayscale
  grayscale = rgb2gray(car)
  #show the original
  io.imshow(car)
  io.show()
  #show the grayscale
  io.imshow(grayscale)
  io.show()
  Numpy
  numpy 本身是一个计算库,它提供了广泛的数学特性,如数组、线性代数、基本统计运算、随机模拟、逻辑排序、搜索、形状操作等。
  通过对图片的运算处理,可以实现图片的灰度化。
  pip install numpy
  import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.image as mpimg
  #load the original image
  img_rgb = mpimg.imread('tesla.png')[...,:3]
  #show the original image
  plt.imshow(img_rgb)
  plt.show()
  #convert the image into grayscale
  img_gray = np.dot(img_rgb,[0.299, 0.587, 0.144])
  #show the grayscale image
  plt.imshow(img_gray, cmap=plt.get_cmap('gray'))
  plt.show()
  mahotas
  Mahotas 是另一个可以执行各种图像处理操作的 Python 计算机视觉库。它是用 C++设计的,它包含许多提高图像处理速度的算法。此外,它使用 NumPy 数组在矩阵中使用图像。分水岭、凸点计算 hit & miss 卷积和 Sobel 边缘是该库中可用的主要功能。
  pip install mahotas
  import mahotas
  from pylab import imshow, show
  #read the image
  img = mahotas.imread('tesla.png')
  #show original image
  imshow(img)
  show()
  img = img[:, :, 0]
  grayscale = mahotas.overlay(img)
  #show grayscale image
  imshow(grayscale)
  show()
  SimpleITK
  SimpleITK 是一个强大的图像配准和分割工具包。它是作为 ITK 工具包的扩展构建的,用于提供简化的界面。它支持不同的编程语言,例如 Python、R、C++、Java、C#、Ruby、TCL 和 Lua。
  该库支持 2D、3D 和 4D 图像。与其他 Python 图像处理库和框架相比,该库的图像处理速度非常快。
  pip install SimpleITK
  import SimpleITK as sitk
  import matplotlib.pyplot as plt
  logo = sitk.ReadImage('tesla.png')
  # GetArrayViewFromImage returns an immutable numpy array view to the data.
  plt.imshow(sitk.GetArrayViewFromImage(logo))
  plt.show()
  Matplotlib
  Matplotlib 是一个综合库,用于在 Python 中创建静态、动画和交互式可视化。Matplotlib 让简单的事情变得简单,让困难的事情成为可能。它可以配合 Numpy 来读取图像数据。
  pip install matplotlib
  # importing libraries.
  import matplotlib.pyplot as plt
  from PIL import Image
  # open image using pillow library
  image = Image.open("tesla.png")
  #show original image
  plt.imshow(image)
  plt.show()
  # grayscale the image
  plt.imshow(image.convert("L"), cmap='gray')
  plt.show()
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号