一、簡介
Imutils 是一個針對OpenCV開發的Python庫,封裝了一些常見的圖像處理操作,如一些常用的顏色空間轉換、邊緣檢測、圖像旋轉、縮放、剪切等圖像預處理操作。對於需要圖像預處理的任務,可以很方便地使用Imutils庫來幫助我們進行快速處理。
二、圖像處理操作
1. 圖像縮放
當我們需要將一張圖片進行縮放時,可以使用Imutils內置的resize()函數。可以指定寬度、高度、插值方法,並支持按比例縮放。
import cv2
import imutils
image = cv2.imread("image.png")
resized = imutils.resize(image, width=500)
cv2.imshow("Resized image", resized)
2. 圖像旋轉
可以使用Imutils的rotate()函數快速對圖像進行旋轉。可以指定旋轉角度、旋轉中心以及縮放比例。
import cv2
import imutils
image = cv2.imread("image.png")
rotated = imutils.rotate(image, 45)
cv2.imshow("Rotated image", rotated)
3. 圖像剪切
Imutils庫還提供了一個很方便的截取圖像的函數crop()。可以指定剪切的範圍,也可以用變數表示剪切框的位置和大小。
import cv2
import imutils
image = cv2.imread("image.png")
cropped = imutils.crop(image, x=50, y=50, width=100, height=100)
cv2.imshow("Cropped image", cropped)
三、其他實用功能
1.坐標點距離計算
當我們需要計算兩個坐標點之間的距離時,可以使用Imutils的distance()函數。
import imutils
(x1, y1) = (0, 0)
(x2, y2) = (100, 100)
distance = imutils.distance.euclidean((x1, y1), (x2, y2))
print(f"Distance between points: {distance}")
2.數值範圍限制
在處理一些圖像時,我們可能需要對像素值進行限制。Imutils中的clamp()函數可以對數值進行限制,可以很方便地確保數據的合理性。
import cv2
import imutils
image = cv2.imread("image.png")
clamped = imutils.clamp(image, 50, 200)
cv2.imshow("Clamped image", clamped)
3.基礎繪圖功能
Imutils還提供了一些基礎的繪圖功能。可以繪製矩形、圓形、線段等,這些繪圖函數可以很方便地進行高亮標記。
import numpy as np
import imutils
image = np.zeros((400, 400, 3), dtype="uint8")
imutils.draw.rectangle(image, (50, 50), (150, 150), (0, 0, 255), 2)
imutils.draw.circle(image, (300, 50), 50, (0, 255, 0), 3)
imutils.draw.line(image, (100, 250), (300, 350), (255, 0, 0), 5)
cv2.imshow("Drawing", image)
四、總結
本文簡單介紹了Imutils的一些常用函數,包括圖像處理、數值限制、繪圖功能等等。Imutils庫提供了很多便捷的操作,可以讓我們更加方便地處理圖像和數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238898.html