python+opencv滤波去噪

本文通过Python和OpenCV实现图片噪声去除,演示了如何使用均值滤波技术改善图像质量,包括添加随机噪点及应用中值滤波后的对比效果。

记录第一次使用

利用均值滤波去除图片噪声,python版opencv的安装不再赘述
在这里插入图片描述
左边是原图,右边是滤波之后的结果

附代码

import cv2
import random

img01 = cv2.imread("D:\\landscape.jpg")

for i in range(8000): #生成8000个噪点
    a = random.randint(0,499)
    b = random.randint(0,499)
    img01[a,b] = 255
cv2.imshow("original",img01)		# 显示噪点图

img_medianBlur=cv2.medianBlur(img01,3) # 中值滤波
cv2.imshow("result",img_medianBlur)    # 显示中值滤波结果
cv2.waitKey(0)
cv2.destroyAllWindows()
### PythonOpenCV 实现图像的方法 在计算机视觉领域,图像是一个常见的预处理步骤。通过减少图像中的声干扰,可以提高后续算法的性能。OpenCV 提供了一个强大的函数 `cv2.fastNlMeansDenoisingColored()` 来执行彩色图像的降操作[^1]。 以下是完整的代码示例以及解释: #### 安装依赖库 为了运行下面的代码,请确保已安装所需的库: ```bash pip install opencv-python-headless matplotlib numpy ``` #### 使用 `cv2.fastNlMeansDenoisingColored` 除彩色图像声 以下代码展示了如何加载一张图片并对其进行处理: ```python import cv2 import numpy as np import matplotlib.pyplot as plt # 加载原始图像 img = cv2.imread('img.jpg') # 将BGR颜色空间转换为RGB以便于显示 rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 调用fastNlMeansDenoisingColored进行 dst = cv2.fastNlMeansDenoisingColored(rgb_img, None, 10, 10, 7, 21) # 显示原图和后的效果对比 plt.figure(figsize=(10, 5)) plt.subplot(121), plt.title("Original Image"), plt.imshow(rgb_img) plt.subplot(122), plt.title("Denoised Image"), plt.imshow(dst) plt.tight_layout() plt.show() ``` 上述代码中使用的参数说明如下: - **h**: 彩色图像的空间域滤波强度,默认值通常设置为10。 - **hColor**: 颜色域滤波强度,一般取值与 h 相同或稍小一些。 - **templateWindowSize**: 搜索窗口大小,默认值为7。 - **searchWindowSize**: 进行估计时考虑的最大范围,默认值为21。 这些参数可以根据实际需求调整以获得最佳效果。 对于灰度图像,则可使用另一种方法 `cv2.fastNlMeansDenoising()`,其功能类似于前者但专用于单通道数据[^2]。 如果输入的是多张带声的图像列表形式的数据结构,在批量处理前可能还需要先将其裁剪至合理范围内再转成无符号整型数组格式保存下来作为最终结果输出给用户查看或者进一步分析计算等等过程都需要特别注意边界条件等问题以免造成程序崩溃等情况发生。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值