【AI實戰10 個 Python 圖像編輯工具

      網友投稿 1228 2025-03-31

      當今的世界充滿了數據,而圖像數據就是其中很重要的一部分。但只有經過處理和分析,提高圖像的質量,從中提取出有效地信息,才能利用到這些圖像數據。

      常見的圖像處理操作包括顯示圖像,基本的圖像操作,如裁剪、翻轉、旋轉;圖像的分割、分類、特征提?。粓D像恢復;以及圖像識別等等。Python 作為一種日益風靡的科學編程語言,是這些圖像處理操作的最佳選擇。同時,在 Python 生態當中也有很多可以免費使用的優秀的圖像處理工具。

      下文將介紹 10 個可以用于圖像處理任務的 Python 庫,它們在編輯圖像、查看圖像底層數據方面都提供了簡單直接的方法。

      1、scikit-image

      scikit-image?是一個結合?NumPy?數組使用的開源 Python 工具,它實現了可用于研究、教育、工業應用的算法和應用程序。即使是對于剛剛接觸 Python 生態圈的新手來說,它也是一個在使用上足夠簡單的庫。同時它的代碼質量也很高,因為它是由一個活躍的志愿者社區開發的,并且通過了同行評審peer review。

      scikit-image 的文檔非常完善,其中包含了豐富的用例。

      可以通過導入?skimage?使用,大部分的功能都可以在它的子模塊中找到。

      圖像濾波:

      import matplotlib.pyplot as plt

      %matplotlib inline

      from skimage import data,filters

      image = data.coins() # ... or any other NumPy array!

      edges = filters.sobel(image)

      plt.imshow(edges, cmap='gray')

      Image filtering in scikit-image

      使用?match_template()?方法實現模板匹配:

      Template matching in scikit-image

      在展示頁面可以看到更多相關的例子。

      2、NumPy

      NumPy?提供了對數組的支持,是 Python 編程的一個核心庫。圖像的本質其實也是一個包含像素數據點的標準 NumPy 數組,因此可以通過一些基本的 NumPy 操作(例如切片、掩膜mask、花式索引fancy indexing等),就可以從像素級別對圖像進行編輯。通過 NumPy 數組存儲的圖像也可以被 skimage 加載并使用 matplotlib 顯示。

      在 NumPy 的官方文檔中提供了完整的代碼文檔和資源列表。

      使用 NumPy 對圖像進行掩膜mask操作:

      import numpy as np

      from skimage import data

      import matplotlib.pyplot as plt

      %matplotlib inline

      image = data.camera()

      type(image)

      numpy.ndarray #Image is a NumPy array:

      mask = image < 87

      image[mask]=255

      plt.imshow(image, cmap='gray')

      NumPy

      3、SciPy

      像 NumPy 一樣,SciPy?是 Python 的一個核心科學計算模塊,也可以用于圖像的基本操作和處理。尤其是 SciPy v1.1.0 中的?scipy.ndimage?子模塊,它提供了在 n 維 NumPy 數組上的運行的函數。SciPy 目前還提供了線性和非線性濾波linear and non-linear filtering、二值形態學binary morphology、B 樣條插值B-spline interpolation、對象測量object measurements等方面的函數。

      在官方文檔中可以查閱到?scipy.ndimage?的完整函數列表。

      使用 SciPy 的高斯濾波對圖像進行模糊處理:

      from scipy import misc,ndimage

      face = misc.face()

      blurred_face = ndimage.gaussian_filter(face, sigma=3)

      very_blurred = ndimage.gaussian_filter(face, sigma=5)

      #Results

      plt.imshow()

      Using a Gaussian filter in SciPy

      4、PIL/Pillow

      PIL (Python Imaging Library) 是一個免費 Python 編程庫,它提供了對多種格式圖像文件的打開、編輯、保存的支持。但在 2009 年之后 PIL 就停止發布新版本了。幸運的是,還有一個 PIL 的積極開發的分支?Pillow,它的安裝過程比 PIL 更加簡單,支持大部分主流的操作系統,并且還支持 Python 3。Pillow 包含了圖像的基礎處理功能,包括像素點操作、使用內置卷積內核進行濾波、顏色空間轉換等等。

      Pillow 的官方文檔提供了 Pillow 的安裝說明自己代碼庫中每一個模塊的示例。

      使用 Pillow 中的 ImageFilter 模塊實現圖像增強:

      from PIL import Image,ImageFilter

      #Read image

      im = Image.open('image.jpg')

      #Display image

      im.show()

      from PIL import ImageEnhance

      enh = ImageEnhance.Contrast(im)

      enh.enhance(1.8).show("30% more contrast")

      【AI實戰】10 個 Python 圖像編輯工具

      Enhancing an image in Pillow using ImageFilter

      源碼? 鏈接:http://sipi.usc.edu/database/

      5、OpenCV-Python

      OpenCV(Open Source Computer Vision 庫)是計算機視覺領域最廣泛使用的庫之一,OpenCV-Python?則是 OpenCV 的 Python API。OpenCV-Python 的運行速度很快,這歸功于它使用 C/C++ 編寫的后臺代碼,同時由于它使用了 Python 進行封裝,因此調用和部署的難度也不大。這些優點讓 OpenCV-Python 成為了計算密集型計算機視覺應用程序的一個不錯的選擇。

      入門之前最好先閱讀?OpenCV2-Python-Guide?這份文檔。

      使用 OpenCV-Python 中的金字塔融合Pyramid Blending將蘋果和橘子融合到一起:

      Image blending using Pyramids in OpenCV-Python

      源碼 鏈接:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_pyramids/py_pyramids.html#pyramids

      6、SimpleCV

      SimpleCV?是一個開源的計算機視覺框架。它支持包括 OpenCV 在內的一些高性能計算機視覺庫,同時不需要去了解位深度bit depth、文件格式、色彩空間color space之類的概念,因此 SimpleCV 的學習曲線要比 OpenCV 平緩得多,正如它的口號所說,“將計算機視覺變得更簡單”。SimpleCV 的優點還有:

      即使是剛剛接觸計算機視覺的程序員也可以通過 SimpleCV 來實現一些簡易的計算機視覺測試

      錄像、視頻文件、圖像、視頻流都在支持范圍內

      官方文檔簡單易懂,同時也附有大量的學習用例。

      SimpleCV

      7、Mahotas

      Mahotas?是另一個 Python 圖像處理和計算機視覺庫。在圖像處理方面,它支持濾波和形態學相關的操作;在計算機視覺方面,它也支持特征計算feature computation、興趣點檢測interest point detection、局部描述符local descriptors等功能。Mahotas 的接口使用了 Python 進行編寫,因此適合快速開發,而算法使用 C++ 實現,并針對速度進行了優化。Mahotas 盡可能做到代碼量少和依賴項少,因此它的運算速度非常快??梢詤⒖脊俜轿臋n了解更多詳細信息。

      文檔包含了安裝介紹、示例以及一些 Mahotas 的入門教程。

      Mahotas 力求使用少量的代碼來實現功能。例如這個?Finding Wally?游戲:

      Finding Wally problem in Mahotas

      Finding Wally problem in Mahotas

      源碼 鏈接:https://mahotas.readthedocs.io/en/latest/wally.html

      8、SimpleITK

      ITK(Insight Segmentation and Registration Toolkit)是一個為開發者提供普適性圖像分析功能的開源、跨平臺工具套件,SimpleITK?則是基于 ITK 構建出來的一個簡化層,旨在促進 ITK 在快速原型設計、教育、解釋語言中的應用。SimpleITK 作為一個圖像分析工具包,它也帶有大量的組件,可以支持常規的濾波、圖像分割、圖像配準registration功能。盡管 SimpleITK 使用 C++ 編寫,但它也支持包括 Python 在內的大部分編程語言。

      有很多?Jupyter Notebooks?用例可以展示 SimpleITK 在教育和科研領域中的應用,通過這些用例可以看到如何使用 Python 和 R 利用 SimpleITK 來實現交互式圖像分析。

      使用 Python + SimpleITK 實現的 CT/MR 圖像配準過程:

      SimpleITK animation

      源碼 鏈接:https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/blob/master/Utilities/intro_animation.py

      9、pgmagick

      pgmagick?是使用 Python 封裝的 GraphicsMagick 庫。GraphicsMagick?通常被認為是圖像處理界的瑞士***,因為它強大而又高效的工具包支持對多達 88 種主流格式圖像文件的讀寫操作,包括 DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM、TIFF 等等。

      pgmagick 的?GitHub 倉庫中有相關的安裝說明、依賴列表,以及詳細的使用指引。

      圖像縮放:

      Image scaling in pgmagick

      源碼 鏈接:https://pgmagick.readthedocs.io/en/latest/cookbook.html#scaling-a-jpeg-image

      邊緣提?。?/p>

      Edge extraction in pgmagick

      源碼 鏈接:https://pgmagick.readthedocs.io/en/latest/cookbook.html#edge-extraction

      10、Pycairo

      Cairo?是一個用于繪制矢量圖的二維圖形庫,而?Pycairo?是用于 Cairo 的一組 Python 綁定。矢量圖的優點在于做大小縮放的過程中不會丟失圖像的清晰度。使用 Pycairo 可以在 Python 中調用 Cairo 的相關命令。

      Pycairo 的?GitHub 倉庫提供了關于安裝和使用的詳細說明,以及一份簡要介紹 Pycairo 的入門指南。

      使用 Pycairo 繪制線段、基本圖形、徑向漸變radial gradients:

      Pycairo

      源碼 鏈接:http://zetcode.com/gfx/pycairo/basicdrawing/

      總結

      以上就是 Python 中的一些有用的圖像處理庫,無論你有沒有聽說過、有沒有使用過,都值得試用一下并了解它們。

      轉自:https://mp.weixin.qq.com/s?__biz=MzA4MjEyNTA5Mw==&mid=2652569341&idx=1&sn=da069a7b7a584da3c5d69152f1aa1f0f&pass_ticket=8wiDfXE6r0jOl%2Bloaez9FqiNr4BjKRiQcU4B%2FDBnX%2FVqi8LhGJyz42YZl%2FV8Yl1K

      EI 圖像處理 AI

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:對表格中的單元格進行編號(excel將有內容的單元格編號)
      下一篇:wps表格如何正確輸入日期
      相關文章
      亚洲娇小性色xxxx| 美腿丝袜亚洲综合| 亚洲高清国产拍精品26U| 亚洲精品一级无码鲁丝片 | 亚洲午夜福利在线视频| 亚洲国产中文在线二区三区免| 久久夜色精品国产噜噜噜亚洲AV| 亚洲无人区一区二区三区| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲国产精品一区二区第一页免 | 国产成人亚洲综合网站不卡| 久久精品国产亚洲AV蜜臀色欲| 91亚洲性爱在线视频| 亚洲乱码一二三四区麻豆| 亚洲国产美女视频| 亚洲人成网站18禁止久久影院| 亚洲精品**中文毛片| 亚洲国产精品专区| 亚洲AV成人无码天堂| 亚洲人成图片网站| 亚洲中文字幕无码中文| 亚洲另类无码一区二区三区| 亚洲第一综合天堂另类专| 色天使亚洲综合一区二区| 亚洲av日韩精品久久久久久a| 国产AV无码专区亚洲AV麻豆丫| 日韩国产欧美亚洲v片| 亚洲成人一区二区| 久久亚洲中文字幕精品一区| 国产偷国产偷亚洲清高动态图| 亚洲日本va中文字幕久久| 亚洲av无码一区二区三区网站| 亚洲精品成人av在线| 亚洲白色白色永久观看| 亚洲精品亚洲人成在线播放| 亚洲国产成人久久综合| 亚洲精品国产高清嫩草影院| 亚洲精品无码mv在线观看网站| 亚洲AV无码成人精品区在线观看 | 成人精品国产亚洲欧洲| 亚洲中文字幕成人在线|