去除图像中的椒盐噪声并将图像旋转30度显示
时间: 2024-10-23 22:15:52 浏览: 21
Matlab-图像处理系统,图像增强,图像去噪,图像加噪,图像旋转,甚至还会画爱心~
去除图像中的椒盐噪声和旋转图像通常是数字图像处理中的两个步骤。这里我们将分别介绍这两个过程,并展示如何结合Python的OpenCV库实现它们。
**去除椒盐噪声:**
椒盐噪声是一种随机的像素点值异常,可以用阈值处理来消除。以下是使用OpenCV的基本示例:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('input_image.jpg', cv2.IMREAD_GRAYSCALE)
# 定义椒盐噪声的阈值,可以根据实际情况调整
salt_vs_pepper = 0.01 # 例如,1%的像素可能是噪声
# 创建噪声掩码
mask = np.random.uniform(0, 1, img.shape) < salt_vs_pepper
# 对比度拉伸去除椒盐噪声
denoised_img = cv2.threshold(img * (1 - mask), 0, 255, cv2.THRESH_BINARY_INV)[1]
# 显示原图和去噪后的图像
cv2.imshow("Original", img)
cv2.imshow("Denoised", denoised_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
**旋转图像:**
OpenCV提供`getRotationMatrix2D`和`warpAffine`函数来进行旋转:
```python
# 获取旋转矩阵
angle_degrees = 30
rotation_matrix = cv2.getRotationMatrix2D((img.shape[1] // 2, img.shape[0] // 2), angle_degrees, 1)
# 执行旋转
rotated_img = cv2.warpAffine(denoised_img, rotation_matrix, img.shape)
# 显示旋转后的图像
cv2.imshow("Rotated", rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,上述代码中的角度单位是度数,如果需要其他旋转角度,只需修改`angle_degrees`即可。
阅读全文