項目 | 說明 |
---|---|
定義 | 尺度變換是指改變圖像的大小,通常通過插值方法來達到。 |
類型 | - 放大<br>- 縮小<br>- 使用不同的插值方法如最近鄰插值、雙線性插值、雙三次插值等 |
優點 | - 可以適應不同的顯示設備或應用需求。<br>- 用於圖像金字塔、特徵提取等領域。 |
缺點 | - 放大圖像可能會引入模糊。<br>- 使用不合適的插值方法可能會產生藝術效果或失真。 |
圖像放大
import cv2
# 讀取圖像
image = cv2.imread('path_to_image.jpg')
# 放大圖像
resized = cv2.resize(image, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
cv2.imshow('Original', image)
cv2.imshow('Resized', resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
圖像縮小
# 縮小圖像
resized = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
cv2.imshow('Original', image)
cv2.imshow('Resized', resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
使用不同的插值方法
# 使用最近鄰插值
resized_nearest = cv2.resize(image, (300, 300), interpolation=cv2.INTER_NEAREST)
# 使用雙線性插值
resized_linear = cv2.resize(image, (300, 300), interpolation=cv2.INTER_LINEAR)
# 使用雙三次插值
resized_cubic = cv2.resize(image, (300, 300), interpolation=cv2.INTER_CUBIC)
cv2.imshow('Nearest Neighbour', resized_nearest)
cv2.imshow('Bilinear', resized_linear)
cv2.imshow('Bicubic', resized_cubic)
cv2.waitKey(0)
cv2.destroyAllWindows()
留言列表