一、skimage庫介紹
skimage庫是Python語言中的一種基於scipy庫的圖像處理庫。其全稱是scikit-image庫,其中「scikit」是一個Python科學庫的前綴。scikit-image庫提供了一個易於使用的圖像處理工具集合,覆蓋多個圖像處理分析領域,包含了許多常用的圖像處理演算法。
這個庫在處理圖像時既可以使用scikit-image庫自帶的函數,也可以使用skimage庫支持的第三方函數,例如opencv庫。skimage庫還可以方便用戶將圖像數據傳入sklearn機器學習庫中,進而構建圖像分類器和識別器。
二、圖像處理基礎
在skimage庫中,對圖像的處理主要是針對圖像像素點的操作。在討論具體的操作之前,有必要先對圖像的基礎知識做一些介紹。每張圖像都是由像素組成的,像素是圖像的最小單位,每個像素點都有一個表示它本身的顏色。一張黑白圖像中,每個像素點只有一個值,範圍為0(黑色)到255(白色)之間。而一張彩色圖像中,每個像素點由3個顏色通道組成,分別是紅、綠、藍三個通道。每個顏色通道的值範圍同樣為0~255。
三、圖像處理函數
1. 讀入圖像
在skimage庫中,可以使用io模塊下的imread函數讀入圖像。
import skimage.io as io
image = io.imread('image.png')
2. 顯示圖像
在skimage庫中,可使用matplotlib模塊或skimage模塊來顯示讀入的圖像。
import skimage.io as io
import matplotlib.pyplot as plt
image = io.imread('image.png')
plt.imshow(image)
3. 裁剪圖像
在skimage庫中,可以使用crop函數裁剪圖像。
import skimage.io as io
from skimage import util
image = io.imread('image.png')
image = util.crop(image, ((0, 100), (0, 200), (0, 0)))
4. 縮放圖像
在skimage庫中,可以使用resize函數縮放圖像。
import skimage.transform as transform
image = transform.resize(image, (500, 500))
5. 灰度化圖像
在skimage庫中,可以使用color模塊將彩色圖像灰度化。
import skimage.color as color
image = color.rgb2gray(image)
6. 圖像去噪
在skimage庫中,可以使用restoration模塊去噪。
import skimage.restoration as restoration
image = restoration.denoise_tv_chambolle(image, weight=0.1)
7. 邊緣檢測
在skimage庫中,可以使用feature模塊進行邊緣檢測。
import skimage.feature as feature
edges = feature.canny(image, sigma=3)
8. 直方圖均衡化
在skimage庫中,可以使用exposure模塊進行直方圖均衡化。
import skimage.exposure as exposure
image = exposure.equalize_hist(image)
四、總結
skimage庫為Python語言中的圖像處理提供了豐富的操作函數,涵蓋了從圖像讀入、裁剪、縮放、灰度化,到去噪、邊緣檢測、直方圖均衡化等一系列常用的圖像處理操作。對於需要進行圖像處理的開發者,skimage庫是一個非常好的選擇。
原創文章,作者:TXWYR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332758.html