Python和OpenCV将图像逆时针旋转115°
时间: 2024-01-22 20:20:12 浏览: 81
可以使用OpenCV中的旋转函数来实现图像逆时针旋转115度。以下是示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 获取图像宽高
height, width = img.shape[:2]
# 计算旋转矩阵
M = cv2.getRotationMatrix2D((width/2, height/2), 115, 1)
# 旋转图像
rotated_img = cv2.warpAffine(img, M, (width, height))
# 显示旋转后的图像
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,`getRotationMatrix2D`函数用于计算旋转矩阵,其中第一个参数为旋转中心点坐标,第二个参数为旋转角度,第三个参数为缩放比例。接着使用`warpAffine`函数实现图像的旋转操作。最后通过`imshow`函数显示旋转后的图像。
相关问题
python opencv图像旋转180°
在Python中,使用OpenCV库进行图像旋转180度的操作相对简单。OpenCV提供了`cv2.rotate()`函数来实现这个功能。下面是一个简单的例子:
```python
import cv2
import numpy as np
# 加载图像
image = cv2.imread('image.jpg')
# 将图片进行顺时针旋转180度,保留原尺寸(默认值)
rotated_image = cv2.rotate(image, cv2.ROTATE_180)
# 或者你可以先获取图像的高度和宽度
height, width = image.shape[:2]
rotated_image = cv2.rotate(image, cv2.ROTATE_180, (width, height))
# 保存旋转后的图片
cv2.imwrite('rotated_image.jpg', rotated_image)
```
在这个例子中,`cv2.ROTATE_180`是一个枚举常量,表示图像应该顺时针旋转180度。如果你想要逆时针旋转,可以将此参数改为`cv2.ROTATE_90_COUNTERCLOCKWISE`或`cv2.ROTATE_270_COUNTERCLOCKWISE`。
批量使图片分别顺时针旋转10°、逆时针旋转10°,对图像亮度线性增强10灰度、线性降低10灰度,用python编写
可以使用Python中的OpenCV库实现这些操作。下面是一个简单的代码示例,可以批量对图片进行旋转和亮度调整:
```python
import cv2
import os
# 顺时针旋转图像
def rotate_clockwise(img, angle):
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2,rows/2),angle,1)
dst = cv2.warpAffine(img,M,(cols,rows))
return dst
# 逆时针旋转图像
def rotate_counterclockwise(img, angle):
return rotate_clockwise(img, -angle)
# 线性增强亮度
def increase_brightness(img, value):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
v = cv2.add(v, value)
v[v > 255] = 255
final_hsv = cv2.merge((h, s, v))
return cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR)
# 线性降低亮度
def decrease_brightness(img, value):
return increase_brightness(img, -value)
# 批量处理图片
def process_images(input_folder, output_folder):
# 创建输出文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 读取图片
img = cv2.imread(os.path.join(input_folder, filename))
# 顺时针旋转10度并保存
rotated = rotate_clockwise(img, 10)
cv2.imwrite(os.path.join(output_folder, "rotated_clockwise_" + filename), rotated)
# 逆时针旋转10度并保存
rotated = rotate_counterclockwise(img, 10)
cv2.imwrite(os.path.join(output_folder, "rotated_counterclockwise_" + filename), rotated)
# 线性增强亮度10灰度并保存
brightened = increase_brightness(img, 10)
cv2.imwrite(os.path.join(output_folder, "brightened_" + filename), brightened)
# 线性降低亮度10灰度并保存
darkened = decrease_brightness(img, 10)
cv2.imwrite(os.path.join(output_folder, "darkened_" + filename), darkened)
# 测试
process_images("input_folder", "output_folder")
```
在上面的代码中,rotate_clockwise() 和 rotate_counterclockwise() 函数用于旋转图像,increase_brightness() 和 decrease_brightness() 函数用于调整亮度。process_images() 函数遍历输入文件夹中的所有图片,并对它们进行旋转和亮度调整,然后将处理后的结果保存到输出文件夹中。
注意,这只是一个简单的示例代码,实际应用中需要根据具体情况进行修改和优化。
阅读全文