当前位置:
首页 > temp > python入门教程 >
-
用 Python 给图像添加“椒盐”噪点
用 Python 给图像添加“椒盐”噪点
原文:https://www . geeksforgeeks . org/add-a-a-椒盐噪声到图像的 python/
在本文中,我们将看到如何使用 Python 向图像添加“椒盐”噪声。
噪声:噪声是指计算机版本中信号的随机扰动。在我们的例子中,信号是图像。图像亮度和颜色的随机干扰称为图像噪声。
椒盐色:仅在灰度图像(黑白图像)中发现。顾名思义,胡椒(黑色)中的盐(白色)——深色区域中的白色斑点或胡椒(黑色)中的盐(白色)——白色区域中的黑色斑点。换句话说,具有椒盐噪声的图像在亮区有一些暗像素,在暗区有一些亮像素。椒盐噪声也叫脉冲噪声。它可能由几个原因引起,如死像素、模数转换错误、位传输错误等。
我们来看看如何在图像中添加椒盐噪声–
- 椒盐噪声只能在灰度图像中添加。因此,读取图像后将其转换为灰度
- 随机选择添加了噪声的像素数(像素数)
- 在图像中随机挑选一些会添加噪声的像素。这可以通过随机选择 x 和 y 坐标来完成
- 请注意,生成的随机值必须在图像尺寸范围内。x 和 y 坐标必须在图像大小的范围内
- 随机数可以使用随机数生成器函数生成,如代码中使用的 random.randint
- 将一些随机选取的像素着色为黑色,并将它们的值设置为 0
- 将一些随机选取的像素着色为白色,并将它们的值设置为 255
- 保存图像的价值
下面是实现:
计算机编程语言
import random
import cv2
def add_noise(img):
# Getting the dimensions of the image
row , col = img.shape
# Randomly pick some pixels in the
# image for coloring them white
# Pick a random number between 300 and 10000
number_of_pixels = random.randint(300, 10000)
for i in range(number_of_pixels):
# Pick a random y coordinate
y_coord=random.randint(0, row - 1)
# Pick a random x coordinate
x_coord=random.randint(0, col - 1)
# Color that pixel to white
img[y_coord][x_coord] = 255
# Randomly pick some pixels in
# the image for coloring them black
# Pick a random number between 300 and 10000
number_of_pixels = random.randint(300 , 10000)
for i in range(number_of_pixels):
# Pick a random y coordinate
y_coord=random.randint(0, row - 1)
# Pick a random x coordinate
x_coord=random.randint(0, col - 1)
# Color that pixel to black
img[y_coord][x_coord] = 0
return img
# salt-and-pepper noise can
# be applied only to grayscale images
# Reading the color image in grayscale image
img = cv2.imread('lena.jpg',
cv2.IMREAD_GRAYSCALE)
#Storing the image
cv2.imwrite('salt-and-pepper-lena.jpg',
add_noise(img))
输出:
输入图像:“lena.jpg”
输出图像:“盐和胡椒-lena.jpg”
版权属于:月萌API www.moonapi.com,转载请注明出处
本文链接:https://www.moonapi.com/news/146.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数