首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FootPrint参数在skimage.filters.rank.entropy中是什么?(Scikit-Image,Python)

FootPrint参数在skimage.filters.rank.entropy中是什么?(Scikit-Image,Python)
EN

Stack Overflow用户
提问于 2021-12-07 17:04:26
回答 1查看 485关注 0票数 0

我正在尝试从包文档中复制下面的示例。但是,在用“disk(2)”或“disk(10)”调整“足迹”参数(在skimage.filters.rank's熵函数中)之后,每次我都会得到一个模糊的图像。文档声明‘邻域’表示为1‘s和0’s的ndarray,但是“足迹”参数以像素和熵公式表示什么呢?

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

from skimage import data
from skimage.util import img_as_ubyte
from skimage.filters.rank import entropy
from skimage.morphology import disk

rng = np.random.default_rng()

noise_mask = np.full((128, 128), 28, dtype=np.uint8)
noise_mask[32:-32, 32:-32] = 30

noise = (noise_mask * rng.random(noise_mask.shape) - 0.5
         * noise_mask).astype(np.uint8)
img = noise + 128

#entr_img = entropy(img, disk(2)) # try another 'Footprint'
#entr_img = entropy(img, disk(5)) # try another 'Footprint'
entr_img = entropy(img, disk(10))

fig, (ax0, ax1, ax2) = plt.subplots(nrows=1, ncols=3, figsize=(10, 4))

img0 = ax0.imshow(noise_mask, cmap='gray')
ax0.set_title("Object")
ax1.imshow(img, cmap='gray')
ax1.set_title("Noisy image")
ax2.imshow(entr_img, cmap='viridis')
ax2.set_title("Local entropy")

fig.tight_layout()

示例链接:entropy.html

Skimage.filters.rank.entropy的文档:https://scikit-image.org/docs/dev/api/skimage.filters.rank.html#skimage.filters.rank.entropy

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-25 19:03:14

我现在正面临着你同样的问题。我试图查看skimage中的原始函数,但是它指向cython中的代码,而且我不擅长编码,所以只能猜测。

我的假设是:足迹是计算局部熵时相邻像素的范围。正如skimage中的这个页面所介绍的,disk(X)生成一个半径等于X+1 (包括质心)的类似磁盘的范围。

elements.html#sphx-glr-auto-examples-numpy-operations-plot-structuring-elements-py

为了检验这一假设,我们知道图像的熵被计算为:

熵公式

如果只有一个像素(例如磁盘( 0 )),则pF(i)=1,log2(pF(i))=0,熵总是等于0。

所以我尝试了熵(图像,footprint=disk( 0 )),正如我所预期的,结果图像中的任何地方都等于0。

footprint=disk(0)的情况

希望这能帮到你。(虽然我不能百分之百肯定这个答案。)

添加:我后来测试了占用=磁盘(1)的情况。正如我所假设的,磁盘(1)包含5个像素,最大熵是:

5* (-0.2 * log2(0.2)) = 2.32192809 (当5个像素都有不同的灰度)

正如我所预期的,得到的熵图像的最大值为2.32192809。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70264155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档