Python系列(5)-- Python实现椒盐噪声、中值滤波、均值滤波,OpenCV

lena图片:
这里写图片描述

对Lena图片生成椒盐噪声,并用OpenCV实现中值滤波/均值滤波,对比可发现中值滤波适合做椒盐噪声消除。

# -*- coding: utf-8 -*-
"""
Created on Sat Oct 14 21:38:06 2017

@author: 18201
"""

#coding=utf-8  
import cv2  
import numpy as np    

def salt(img, n):    
    for k in range(n):    
        i = int(np.random.random() * img.shape[1])
        j = int(np.random.random() * img.shape[0])
        if img.ndim == 2:     
            img[j,i] = 255    
        elif img.ndim == 3:     
            img[j,i,0]= 255    
            img[j,i,1]= 255    
            img[j,i,2]= 255    
    return img   

def pepper(img, n):
    for k in range(n):
        i = int(np.random.random() * img.shape[1])
        j = int(np.random.random() * img.shape[0])
        if img.ndim == 2:
            img[j, i] == 0
        elif img.ndim == 3:
            img[j,i,0]= 0    
            img[j,i,1]= 0    
            img[j,i,2]= 0
    return img 


img = cv2.imread("lena_.jpg", 0)  
saltRe = salt(img, 500)
result = pepper(saltRe, 500)

median3 = cv2.medianBlur(result, 3)  
median5 = cv2.medianBlur(result, 5)   

cv2.imshow("SaltPepper", result)  
cv2.imshow("Median3", median3)
cv2.imshow("Median5", median5)  

cv2.waitKey(0)  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值