用python的opencv-contrib-python读入一张灰度图片,输出原图。 将图片水平翻转,再沿图片中心点旋转270°,输出图片。 将原图进行转置,输出图片。
时间: 2024-11-30 08:21:29 浏览: 21
在Python中,你可以使用OpenCV库(cv2模块)来进行图像处理。首先,你需要安装`opencv-contrib-python`库,如果还没安装可以使用pip进行安装:
```bash
pip install opencv-python-headless
```
然后,以下是步骤说明:
1. **读取灰度图片**:
```python
import cv2
# 读取灰度图片,这里假设图片文件名为"image.jpg"
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
```
2. **水平翻转图片**:
```python
# 使用cv2.flip函数水平翻转图片
h_flipped_img = cv2.flip(img, 1) # 第二个参数1表示沿着宽度方向翻转
```
3. **沿中心点旋转270°**:
```python
# 获取图片的宽度和高度
height, width = img.shape
# 计算旋转中心点坐标(宽度的一半,高度的一半)
center = (width // 2, height // 2)
# 使用cv2.getRotationMatrix2D创建旋转矩阵,旋转角度-90度(因为OpenCV顺时针旋转,所以是270度)
rot_mat = cv2.getRotationMatrix2D(center, -270, 1)
# 应用旋转矩阵并保持原始大小(0表示缩放因子)
rotated_img = cv2.warpAffine(img, rot_mat, (width, height), flags=cv2.INTER_LINEAR)
```
4. **转置图片**:
```python
# 转置操作可以直接通过numpy数组的T属性完成
transposed_img = rotated_img.T
```
最后,你可以分别保存这些处理后的图片:
```python
cv2.imwrite('horizontal_flip.jpg', h_flipped_img)
cv2.imwrite('rotated_270.jpg', rotated_img)
cv2.imwrite('transposed.jpg', transposed_img)
```
阅读全文