一、cv2.resize函數
在討論cv2.resize函數之前,我們先來了解一下OpenCV。OpenCV是一個廣泛使用的計算機視覺庫,用於實時處理圖像和視頻。其中最基本的就是對圖像的縮放。cv2.resize就是一個可以用來對圖像進行縮放的函數。
cv2.resize函數可以用來改變圖像的大小。可以使圖像小於原始圖像或者放大圖像。它需要輸入原始圖像和輸出圖像的大小,並進行插值處理以進行圖像轉換。
import cv2
img = cv2.imread('image.jpg')
resized_image = cv2.resize(img, (500,500))
二、cv2.resize報錯
在使用cv2.resize函數的時候,我們可能會遇到報錯的情況。理解這些錯誤信息是非常重要的,因為它們可以告訴我們我們在使用函數時出現了什麼問題。
當我們輸入的大小與原始圖像大小不相等時,就會出現以下報錯:
cv2.error: OpenCV(4.5.2) D:\…\modules\imgproc\src\resize.cpp:4051: error: (-215:Assertion failed) !ssize.empty() in function ‘cv::resize’
這意味着我們輸入的大小有誤,需要調整大小以使其與圖像大小相等。
三、cv2.resize用法
cv2.resize函數的第一個參數是原始圖像。第二個參數是輸出圖像的大小。第三個參數是插值類型。
下面我們詳細介紹一下第三個參數——插值類型。在縮小或放大圖像時,OpenCV需要在像素之間進行插值,以維持圖像的質量。下面是cv2.resize函數中可用的插值類型:
- cv2.INTER_NEAREST:最近鄰插值法
- cv2.INTER_LINEAR:雙線性插值法(默認)
- cv2.INTER_AREA:像素區域相關方法
- cv2.INTER_CUBIC:雙三次插值法
- cv2.INTER_LANCZOS4:Lanczos插值法
import cv2
img = cv2.imread('image.jpg')
resized_image = cv2.resize(img, (500,500), interpolation = cv2.INTER_CUBIC)
四、cv2.resize原理
cv2.resize函數的背後原理是圖像流形變換。即,它將原始圖像的像素坐標映射到輸出圖像的像素坐標。如果輸出圖像的像素坐標不在輸入圖像的範圍內,則使用插值算法來估計輸出值。
在cv2.resize中,我們可以使用不同的插值算法來估計這些輸出值。這可以有助於在縮小或放大圖像時保持一些圖像特徵的細節。
五、cv2.resize()參數
除了第一個參數(即原始圖像)和第二個參數(即輸出圖像的大小)之外,cv2.resize()還有第三個參數,即插值方法,如上所述。
除此之外,還可以使用 cv2.resize() 修改圖像的尺寸。例如,以下代碼可以將圖像修改為原始圖像的一半大小:
import cv2
img = cv2.imread('image.jpg')
resized_image = cv2.resize(img, (int(img.shape[1]/2), int(img.shape[0]/2)))
六、cv2.resize縮小圖片
在cv2.resize中,我們可以使用插值算法來幫助我們縮小圖像。此外,我們還可以將圖像的大小調整為圖像的原始大小的一定比例。
以下代碼將會把圖片縮小為原圖的一半:
import cv2
img = cv2.imread('image.jpg')
height, width = img.shape[:2]
res = cv2.resize(img, (int(width/2), int(height/2)), interpolation=cv2.INTER_CUBIC)
七、cv2.resize()修改圖片尺寸
在cv2.resize中,可以使用以下代碼將圖片大小調整為寬度為500像素,高度自動調整為保持寬高比適當:
import cv2
img = cv2.imread('image.jpg')
ratio = 500.0 / img.shape[1]
dim = (500, int(img.shape[0] * ratio))
res = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
八、cv2.resize函數python
下面我們來看看如何使用 Python 中的 cv2.resize() 函數。有一個實用的例子是,如果有一個寬度為 500 像素但高度不定的圖像,我們可以使用:
import cv2
image = cv2.imread("image.jpg")
height, width = image.shape[:2]
ratio = width / float(height)
new_height = 500
res = cv2.resize(image, (int(ratio*new_height), new_height))
九、cv2.resizeWindow選取
在 OpenCV 中,您還可以使用 cv2.resizeWindow() 函數調整窗口的大小。下面是該函數的例子:
import cv2
image = cv2.imread("image.jpg")
cv2.imshow("Original", image)
cv2.resizeWindow("Original", 300, 300)
以上代碼的輸出窗口大小將會是 300 像素 x 300 像素。
原創文章,作者:QYQA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/138491.html