如何解决skimage.util.random_noise 方法的“salt_vs_pepper”参数如何影响生成的图像?
我正在方法 <?php
$arrNum = [2,5,6,8];
$arrNumDouble = array_map(
function($el) {
return [$el,2*$el];
},$arrNum
);
#var_export($arrNumDouble);
foreach($arrNumDouble as $el) {
echo "2 * $el[0] = $el[1]" . PHP_EOL;
}
中试验 salt_vs_pepper
的各种值。在以下示例中,我有一个 100X100 的图像并为各种值生成了输出
'salt_vs_pepper'
https://scikit-image.org/docs/dev/api/skimage.util.html
salt_vs_pepper=0.3
salt_vs_pepper=0.5
salt_vs_pepper=0.8
salt_vs_pepper=0.9
salt_vs_pepper=1.0
Python 代码片段
skimage.util.random_noise
问题
import numpy as np
import matplotlib.pyplot as plt
import os
import skimage
from skimage import io
width=100
white_color=255
salt_pepper=0.5
mode="s&p"
#mode="salt"
img = np.zeros([width,width,1],dtype=np.uint8)
img.fill(white_color)
img=skimage.util.random_noise(img,mode=mode,seed=None,clip=True,salt_vs_pepper=salt_pepper)
folder_script=os.path.dirname(__file__)
absolute_filepath=os.path.join(folder_script,"results-%s.png" % (salt_pepper))
io.imsave(absolute_filepath,img)
#
#Count of black pixels
#
all_black_indices=np.where(img < 1)
all_white_indices=np.where(img == 1)
print("Total black pixels=%d" % (len(all_black_indices[0])))
print("Total white pixels=%d" % (len(all_white_indices[1])))
是如何工作的?我本来希望这个值代表一个像素是 salt_vs_pepper
(白色)的概率?但是,由此产生的图像似乎与这种想法相矛盾?
示例
当 salt
为 0.9 时,我预计大约 10% 的像素为 salt_vs_pepper
,即黑色。对于 100X100 图像,这相当于 1000 像素。但是,pepper
像素的实际计数少于 100。为什么?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。