OpenCV 摄像头椒盐噪声 Pepper Salt 于 Python 实现

import cv2
import numpy as np


# input-输入源 salt_ratio-椒盐中盐的占比 pixel_scale-像素占比
def pepper_salt(input, salt_ratio, pixel_scale):
    source = input
    noisy_output = np.copy(input)  # 传递输入源

    # Pepper:
    Pepper_sum = np.ceil(pixel_scale * (1.0 - salt_ratio) * source.size)
    coordinate = [np.random.randint(0, i - 1, int(Pepper_sum)) for i in source.shape]
    noisy_output[coordinate[0], coordinate[1]] = [0, 0, 0]

    # Salt:
    Salt_sum = np.ceil(pixel_scale * salt_ratio * source.size)
    coordinate = [np.random.randint(0, i - 1, int(Salt_sum)) for i in source.shape]
    noisy_output[coordinate[0], coordinate[1]] = [255, 255, 255]

    cv2.imshow("Pepper Salt", noisy_output)


if __name__ == '__main__':
    cap = cv2.VideoCapture(0)  # 0-系统摄像
    cap.set(3, 640)  # 宽
    cap.set(4, 480)  # 高
    cap.set(10, 30)  # 亮度 德拉每平米(cd/m2) or nits
    while True:
        success, frame = cap.read()
        cv2.imshow("Original", frame)  # 原
        pepper_salt(frame, 0.5, 0.05)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

传入参数介绍:

传入的参数有input、noise_ratio和pixel_scale,input可传入的图像或Mat对象,noise_ratio设置椒盐噪声的比例,如代码所示,传入的参数代表帧的50%的区域中随机点的5%将作为盐(白点)。

运行时版本信息:Python36,opencv-python3.4.2.17,pip21.3.1,numpy1.19.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值