之前幾篇文章介紹了OpenCV的一些模塊概念,并沒有細說每個模塊具體的方法和使用。接下來就會詳細介紹每個模塊模塊包含的方法和使用。
本文將詳細介紹圖像的四種基本操作:訪問和修改像素值、圖像 ROI (Region of Interest) 操作、圖像通道分離與合并、以及圖像的縮放、旋轉、平移和翻轉。
常用方法:
操作 | 函數/方法 | 說明 |
---|---|---|
訪問像素值 | image[y, x] | 獲取或修改像素值 |
圖像 ROI | image[y1:y2, x1:x2] | 獲取或修改圖像中的矩形區域 |
通道分離與合并 | cv2.split() / cv2.merge() | 分離或合并圖像通道 |
圖像縮放 | cv2.resize() | 調整圖像大小 |
圖像旋轉 | cv2.getRotationMatrix2D() | 旋轉圖像 |
圖像平移 | cv2.warpAffine() | 平移圖像 |
圖像翻轉 | cv2.flip() | 翻轉圖像 |
圖像加法 | cv2.add() | 對兩幅圖像進行加法運算 |
圖像減法 | cv2.subtract() | 對兩幅圖像進行減法運算 |
圖像混合 | cv2.addWeighted() | 對兩幅圖像進行加權混合 |
閾值處理 | cv2.threshold() | 對圖像進行閾值處理 |
平滑處理 | cv2.blur() / cv2.GaussianBlur() | 對圖像進行平滑處理 |
1. 訪問和修改像素值
圖像是由像素組成的矩陣,每個像素都有一個或多個值,表示顏色或灰度。在灰度圖像中,每個像素只有一個值,表示灰度強度;在彩色圖像中,每個像素通常有三個值,分別表示紅色、綠色和藍色(RGB)通道的強度。
訪問像素值
在 Python 中,可以使用 OpenCV 庫來訪問圖像的像素值。假設我們有一個灰度圖像 img,可以通過 img[y, x] 來訪問位于 (x, y) 位置的像素值。對于彩色圖像,可以通過 img[y, x, c] 來訪問特定通道 c 的像素值,其中 c 為 0(藍色)、1(綠色)或 2(紅色)。
import cv2# 讀取圖像
img = cv2.imread('image.jpg')# 訪問像素值
pixel_value = img[100