python利用OpenCV的cv2.resize()函数编写一个图像缩放的程序,要求按0键图像恢复原始大小,按1键缩小为原图的20%,按2键缩小为原图的50%,按3键放大为原图的1.5倍,按4键放大为原图的2倍。
时间: 2024-01-21 15:20:03 浏览: 123
以下是一个简单的图像缩放程序,可以使用cv2.resize()函数来实现:
```python
import cv2
# 读取图像文件
img = cv2.imread('image.jpg')
# 显示原始图像
cv2.imshow('Original Image', img)
# 定义缩放比例
scale_20 = 0.2
scale_50 = 0.5
scale_150 = 1.5
scale_200 = 2.0
while True:
# 等待用户按键
k = cv2.waitKey(0)
# 恢复原始大小
if k == ord('0'):
cv2.imshow('Original Image', img)
# 缩小为原图的20%
elif k == ord('1'):
new_width = int(img.shape[1] * scale_20)
new_height = int(img.shape[0] * scale_20)
new_img = cv2.resize(img, (new_width, new_height))
cv2.imshow('Scaled Image', new_img)
# 缩小为原图的50%
elif k == ord('2'):
new_width = int(img.shape[1] * scale_50)
new_height = int(img.shape[0] * scale_50)
new_img = cv2.resize(img, (new_width, new_height))
cv2.imshow('Scaled Image', new_img)
# 放大为原图的1.5倍
elif k == ord('3'):
new_width = int(img.shape[1] * scale_150)
new_height = int(img.shape[0] * scale_150)
new_img = cv2.resize(img, (new_width, new_height))
cv2.imshow('Scaled Image', new_img)
# 放大为原图的2倍
elif k == ord('4'):
new_width = int(img.shape[1] * scale_200)
new_height = int(img.shape[0] * scale_200)
new_img = cv2.resize(img, (new_width, new_height))
cv2.imshow('Scaled Image', new_img)
# 退出循环
elif k == 27:
break
cv2.destroyAllWindows()
```
注意:在程序中使用`cv2.waitKey()`函数可以等待用户按键。当用户按下一个键时,该函数会返回该键的ASCII码。在本程序中,我们使用`ord()`函数将按键转换为ASCII码,然后根据按键的值选择相应的缩放比例和调用`cv2.resize()`函数来缩放图像。
阅读全文