利用Python-OpenCV实现图像的缩放、旋转、标注、分割和平滑等操作
时间: 2023-12-25 09:02:38 浏览: 107
基于Android的OpenCV图像缩放操作的实现
下面是利用Python-OpenCV实现图像的缩放、旋转、标注、分割和平滑等操作的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('test.jpg')
# 缩放图像
resized_img = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
# 旋转图像
(h, w) = img.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, 45, 1.0)
rotated_img = cv2.warpAffine(img, M, (w, h))
# 标注图像
cv2.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 2)
cv2.putText(img, 'Test Image', (100, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 分割图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
# 平滑图像
blur_img = cv2.GaussianBlur(img, (5, 5), 0)
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
cv2.imshow('Rotated Image', rotated_img)
cv2.imshow('Annotated Image', img)
cv2.imshow('Thresholded Image', thresh)
cv2.imshow('Blurred Image', blur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取了名为'test.jpg'的图像。然后,我们对图像进行了缩放、旋转、标注、分割和平滑等操作,并使用cv2.imshow()函数将处理后的图像显示出来。
其中,resize()函数用于缩放图像,getRotationMatrix2D()函数用于计算旋转矩阵,warpAffine()函数用于对图像进行旋转操作,rectangle()函数和putText()函数用于在图像上绘制矩形和文本,cvtColor()函数用于将图像从BGR颜色空间转换为灰度图像,threshold()函数用于对灰度图像进行二值化处理,GaussianBlur()函数用于对图像进行高斯模糊处理。
阅读全文