溫馨提示×

Ubuntu下OpenCV2的圖像處理功能

小樊
87
2024-09-05 18:25:21

OpenCV(開源計(jì)算機(jī)視覺庫)是一個用于實(shí)時計(jì)算機(jī)視覺的開源庫。它包含了許多用于圖像和視頻處理的優(yōu)化算法。在Ubuntu系統(tǒng)下,你可以使用OpenCV 2來執(zhí)行各種圖像處理任務(wù)。

以下是一些常見的OpenCV 2圖像處理功能:

  1. 基本操作:如讀取、顯示和保存圖像。
import cv2

# 讀取圖像
image = cv2.imread('input.jpg')

# 顯示圖像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存圖像
cv2.imwrite('output.jpg', image)
  1. 圖像處理:如縮放、旋轉(zhuǎn)、翻轉(zhuǎn)等。
# 縮放圖像
resized_image = cv2.resize(image, (width, height))

# 旋轉(zhuǎn)圖像
(height, width) = image.shape[:2]
center = (width // 2, height // 2)
angle = 45  # 旋轉(zhuǎn)角度
rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))

# 翻轉(zhuǎn)圖像
flipped_image = cv2.flip(image, 1)  # 1表示水平翻轉(zhuǎn),0表示垂直翻轉(zhuǎn),-1表示水平垂直翻轉(zhuǎn)
  1. 顏色空間轉(zhuǎn)換:如將BGR圖像轉(zhuǎn)換為灰度圖像或HSV圖像。
# 轉(zhuǎn)換為灰度圖像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 轉(zhuǎn)換為HSV圖像
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
  1. 圖像濾波:如高斯模糊、中值濾波等。
# 高斯模糊
blurred_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), sigmaX)

# 中值濾波
median_image = cv2.medianBlur(image, kernel_size)
  1. 邊緣檢測:如Canny邊緣檢測、Sobel算子等。
# Canny邊緣檢測
edges = cv2.Canny(image, threshold1, threshold2)

# Sobel算子
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=kernel_size)
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=kernel_size)
  1. 特征提?。喝鏢IFT、SURF、ORB等。
# SIFT特征提取
sift = cv2.SIFT()
keypoints, descriptors = sift.detectAndCompute(image, None)

# SURF特征提取
surf = cv2.SURF()
keypoints, descriptors = surf.detectAndCompute(image, None)

# ORB特征提取
orb = cv2.ORB()
keypoints, descriptors = orb.detectAndCompute(image, None)

這只是OpenCV 2圖像處理功能的一部分。要了解更多關(guān)于OpenCV 2的信息,請參閱官方文檔:https://docs.opencv.org/2.4/index.html

0