iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Python

Python x OpenCV系列 第 4

[Day04] Numpy簡介與OpenCV影像裁剪

  • 分享至 

  • xImage
  •  

Python 的 Numpy 操作與 OpenCV 的圖片裁剪介紹

在 Python 中,Numpy 是一個強大的數值計算庫,用來處理大規模的多維陣列和矩陣。OpenCV 則是一個常用於影像處理的函式庫,兩者經常一起使用。在這篇文章中,我們將介紹如何使用 Numpy 進行基本操作,並使用 OpenCV 來裁剪圖片。

Numpy 基本操作

Numpy 提供了許多高效的操作來處理數據。以下是一些常見的 Numpy 操作示例:

import numpy as np

# 建立一個3x3的矩陣
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 矩陣加法
add_matrix = matrix + 1

# 矩陣乘法
mul_matrix = matrix * 2

# 矩陣轉置
transpose_matrix = matrix.T

print("原始矩陣:\n", matrix)
print("加法後的矩陣:\n", add_matrix)
print("乘法後的矩陣:\n", mul_matrix)
print("轉置矩陣:\n", transpose_matrix)

以上範例展示了如何創建矩陣並進行加法、乘法及轉置操作。這些操作非常直觀,且對於影像處理中的矩陣運算十分重要。

OpenCV 的圖片裁剪

圖片裁剪是影像處理中的一個常見操作,使用 OpenCV,我們可以通過選取圖片中指定的區域來裁剪部分圖像。

import cv2

# 讀取圖片
image = cv2.imread('Lenna.jpg')

# 確認圖片是否成功讀取
if image is None:
    print("圖片讀取失敗")
else:
    # 顯示原始圖片
    cv2.imshow('Original Image', image)

    # 指定裁剪區域 (y: 從100到400, x: 從100到400)
    cropped_image = image[100:400, 100:400]

    # 顯示裁剪後的圖片
    cv2.imshow('Cropped Image', cropped_image)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

在這個範例中,我們讀取了一張名為 Lenna.jpg 的圖片,並通過指定區域 image[y1:y2, x1:x2] 來進行裁剪。這樣可以獲得圖片的特定區域,並進行後續處理或分析。

結合 Numpy 和 OpenCV 的應用

Numpy 和 OpenCV 常常一起使用,因為 OpenCV 中的圖像其實是一個 Numpy 陣列。因此,我們可以使用 Numpy 的操作對圖像進行處理,例如對圖片進行數學運算或轉換矩陣。

結論

Numpy 和 OpenCV 是 Python 中處理數據和圖像的強大工具。Numpy 提供了簡便的數學運算功能,而 OpenCV 則提供了豐富的影像處理操作,兩者結合可以實現許多高效的應用,如影像增強、特徵提取等。希望透過這些示例,能夠讓你更好地理解如何在 Python 中進行數據和影像處理。


上一篇
[Day 03] 影像處理 - 強度變換 Intensity Transform
下一篇
[Day 05] OpenCV 形態轉換 - 侵蝕
系列文
Python x OpenCV5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言