Python影像處理?


Python提供了許多用於影像處理的庫,包括:

  • OpenCV − 主要關注即時計算機視覺的影像處理庫,應用領域廣泛,例如二維和三維特徵工具包、人臉和姿態識別、人機互動、移動機器人、物體識別等。

  • Numpy和Scipy庫 − 用於影像操作和處理。

  • Scikit-learn − 提供許多影像處理演算法。

  • Python影像庫 (PIL) − 用於執行影像的基本操作,例如建立縮圖、調整大小、旋轉、在不同檔案格式之間轉換等。

在本節中,我們將瞭解Python影像處理的一些基礎知識。

安裝所需的庫

我們的第一步是安裝所需的庫,例如OpenCV、Pillow或其他我們想要用於影像處理的庫。我們可以使用pip安裝所需的庫,例如:

$pip install pillow

就是這樣:現在我們可以處理我們的影像了。

影像:Open() 和 show()

首先,開啟檔案/影像並顯示。你可以像下面這樣在顯示時旋轉影像:

#Import required library
from PIL import Image

#Open Image
im = Image.open("TajMahal.jpg")

#Image rotate & show
im.rotate(45).show()

輸出

如上所示變數im是一個Pillow物件。我們可以檢索有關已開啟影像的一些資訊:

>>> im
<PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990<
>>> im.size
(1000, 667)
>>> im.format
'JPEG'
>>>

轉換和儲存影像

我們可以將影像格式從一種格式更改為另一種格式,如下所示:

>>> im.save('TajMahal.png')

現在,如果我們檢視資料夾,我們會有兩種不同格式的相同影像。

調整大小 - 縮圖()

我們可以使用Pillow的thumbnail()方法更改影像大小:

>>> im.thumbnail ((300, 300))
>>> im.show()

影像將如下更改

轉換為灰度影像 - convert()

我們可以從原始彩色影像製作灰度影像。

>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L')
>>> TajMahal_gray.show()

其中“L”代表“明亮度”。


以上示例來自Python的PIL庫。我們可以使用其他庫,如OpenCV、Matplotlib和Numpy進行影像處理。下面是一些示例程式,用於演示使用更強大的影像處理庫。

顯示灰度影像

#Import required library
import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出

另一種方法是用一個標記/線來標記影像的程式。

import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)

plt.imshow(im, cmap = 'gray', interpolation = 'bicubic')
# to hide tick values on X and Y axis
plt.xticks([]), plt.yticks([])
plt.plot([200,300,400],[100,200,300],'c', linewidth = 5)
plt.show()

輸出

更新於:2019年7月30日

12K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.