python opencv实现图像分辨率升采样降采样
时间: 2023-09-18 22:07:19 浏览: 96
首先,我们需要导入OpenCV库:
```python
import cv2
```
然后,我们可以使用`cv2.imread()`函数读取一张图片:
```python
img = cv2.imread('image.jpg')
```
接下来,我们可以使用`cv2.resize()`函数来进行图像分辨率的升采样和降采样。其中,`cv2.resize()`函数的第一个参数是原始图片,第二个参数是目标图片的大小(可以是宽度和高度的元组或者一个缩放比例因子),第三个参数是插值方法。
例如,我们可以将一张图片的分辨率降低一半:
```python
resized_img = cv2.resize(img, (img.shape[1]//2, img.shape[0]//2), interpolation = cv2.INTER_AREA)
```
或者将一张图片的分辨率提高一倍:
```python
resized_img = cv2.resize(img, (img.shape[1]*2, img.shape[0]*2), interpolation = cv2.INTER_CUBIC)
```
其中,`cv2.INTER_AREA`表示使用平均像素值进行降采样,`cv2.INTER_CUBIC`表示使用三次样条插值进行升采样。
最后,我们可以使用`cv2.imshow()`函数来显示结果:
```python
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
完整代码如下:
```python
import cv2
img = cv2.imread('image.jpg')
resized_img = cv2.resize(img, (img.shape[1]//2, img.shape[0]//2), interpolation = cv2.INTER_AREA)
#resized_img = cv2.resize(img, (img.shape[1]*2, img.shape[0]*2), interpolation = cv2.INTER_CUBIC)
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```