[OpenCV基礎][Python]影像操作(讀取、顯示、保存、裁剪、旋轉、縮放)

更新 發佈閱讀 5 分鐘

本文將介紹影像基本操作包括:影像的讀取顯示保存,以及一些常見的操作裁剪旋轉縮放等。

語法介紹

讀取影像:

cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPyndarray形式表示。

支援多種常見影像格式:JPEG (.jpg, .jpeg),PNG (.png),BMP (.bmp),TIFF (.tiff, .tif)等

import cv2

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

顯示影像:

使用 cv2.imshow() 函數可以顯示影像。這通常與 cv2.waitKey()cv2.destroyAllWindows() 一同使用。

在使用 cv2.imshow() 顯示影像後,如果沒有 cv2.waitKey(),視窗會立即關閉。然而,如果使用 cv2.waitKey(0),它會等待直到任意鍵被按下,這樣你就有足夠的時間來觀察和檢查影像。

當你按下任意鍵之後,cv2.waitKey(0) 返回按鍵的ASCII值,然後程式繼續執行。

接下來,使用 cv2.destroyAllWindows() 來關閉所有OpenCV的視窗。

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

保存圖像:

# 保存影像
cv2.imwrite('path/to/save/image.jpg', image)

cv2.imwrite: 函數的參數為保存的檔案路徑和要保存的影像

'path/to/save/image.jpg': 這是指定要保存影像的檔案路徑,這裡假設檔案名稱image.jpg


裁剪影像:

這是使用NumPy切片(slicing)和索引(indexing)的方式來取出一部分影像。

# 裁剪影像的一部分
cropped_image = image[y_start:y_end, x_start:x_end]

y_starty_end垂直方向的起始和結束索引。

x_startx_end水平方向的起始和結束索引。


旋轉影像:

這是一個比較簡單的旋轉函式,但只能指定三個角度,若要其他角度就需使用cv2.warpAffine可參考另外一篇文章有詳細介紹[OpenCV基礎][Python]遮罩,旋轉,輪廓應用濾除斑點

import cv2

# 旋轉影像
angle = '90'
Rotate_list = {'90': 0, '180': 1, '270': 2}
Rotate_angle = Rotate_list.get(angle)

# 假設你已經有了一個讀取的影像 image
rotated_image = cv2.rotate(image, Rotate_angle)

縮放影像:

# 縮放影像
scaled_image = cv2.resize(image, (new_width, new_height))

new_widthnew_height 是新的寬度和高度。


程式實作範例_1

結合使用使用讀取,顯示,旋轉,保存圖像。

當使用 cv2.imwrite() 函數保存影像時,如果未指定完整的檔案路徑,則保存的位置將相對於當前工作目錄(current working directory,通常是執行程式的目錄)。

import cv2

# 讀取影像
image = cv2.imread('cat.jpg')

# 旋轉影像
angle = '90'
Rotate_list = {'90': 0, '180': 1, '270': 2}
Rotate_angle = Rotate_list.get(angle)

# 假設你已經有了一個讀取的影像 image
rotated_image = cv2.rotate(image, Rotate_angle)

# 顯示影像
cv2.imshow('Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存影像
cv2.imwrite('rotated_image_cat.jpg', rotated_image)
旋轉後的圖

旋轉後的圖

保存後路徑

保存後路徑


程式實作範例_2

結合縮放,左邊為原圖,右邊為縮放後的圖。

import cv2

# 讀取影像
image = cv2.imread('cat.jpg')

# 縮放 50 * 100

scaled_image = cv2.resize(image, (50, 100))

# 顯示影像
cv2.imshow('Image', scaled_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存影像
cv2.imwrite('scaled_image_cat.jpg', scaled_image)
縮放比較圖

縮放比較圖



歡迎加入我的沙龍,及追蹤,將持續更新跟OpenCV相關的內容喔~








留言
avatar-img
螃蟹_crab的沙龍
159會員
311內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
2024/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
Thumbnail
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
Thumbnail
影像和檔案的處理技術已成為設計師的基本功。從精緻的插圖到複雜的版面設計,每一步操作都蘊含著無限的可能性與挑戰。本文將帶領您深入了解如何精準控制影像置入過程中的細節,從而達到既定的設計目標。 精確控制影像置入的技巧 當我們談論將影像或檔案置入Adobe Illustrator或InDesign時,
Thumbnail
影像和檔案的處理技術已成為設計師的基本功。從精緻的插圖到複雜的版面設計,每一步操作都蘊含著無限的可能性與挑戰。本文將帶領您深入了解如何精準控制影像置入過程中的細節,從而達到既定的設計目標。 精確控制影像置入的技巧 當我們談論將影像或檔案置入Adobe Illustrator或InDesign時,
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
形態學操作在影像處理中有多種應用,特別是在處理二值化影像(黑白影像)。 在影像處理應用上,基本上都由侵蝕,膨脹這兩種方法,組合搭配而成。 常見應用場景 物體檢測與分割: 形態學操作可以用於增強或改善二值化影像中的物體邊界,使得物體的檢測和分割更加準確。
Thumbnail
形態學操作在影像處理中有多種應用,特別是在處理二值化影像(黑白影像)。 在影像處理應用上,基本上都由侵蝕,膨脹這兩種方法,組合搭配而成。 常見應用場景 物體檢測與分割: 形態學操作可以用於增強或改善二值化影像中的物體邊界,使得物體的檢測和分割更加準確。
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和影像處理庫,它提供了豐富的功能和工具,可用於開發各種視覺應用程式。 OpenCV最初是用C++編寫的,但它也提供了Python、Java等多種程式語言的接口,方便不同語言的開發者使用。
Thumbnail
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和影像處理庫,它提供了豐富的功能和工具,可用於開發各種視覺應用程式。 OpenCV最初是用C++編寫的,但它也提供了Python、Java等多種程式語言的接口,方便不同語言的開發者使用。
Thumbnail
[影像處理_OpenCV Python]使用Python撰寫影像處理功能,圖片遮罩或濾除掉不要的地方,旋轉圖片 以下範例將呈現影像處理三種不同的應用: 遮罩的實現 濾除 旋轉
Thumbnail
[影像處理_OpenCV Python]使用Python撰寫影像處理功能,圖片遮罩或濾除掉不要的地方,旋轉圖片 以下範例將呈現影像處理三種不同的應用: 遮罩的實現 濾除 旋轉
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News