image-processing - 什么是图像的熵,它是如何计算的?
问题描述
我了解到这是像素的随机性。但是请帮助您了解如何以数学方式计算这种随机性。以及不同的图像将如何具有不同的熵。
解决方案
你也可以直接从你的img
. 做就是了:
import skimage.measure
entropy = skimage.measure.shannon_entropy(img)
如果你想看看背后的数学:
import numpy as np
marg = np.histogramdd(np.ravel(img), bins = 256)[0]/img.size
marg = list(filter(lambda p: p > 0, np.ravel(marg)))
entropy = -np.sum(np.multiply(marg, np.log2(marg)))
首先marg
是二维灰度图像的边缘分布img
。bins
对于 8 位图像,设置为 256。然后,您需要过滤掉等于零的概率,最后对剩余元素求和,如香农熵np.multiply(marg, np.log2(marg))
所定义的那样。
推荐阅读
- oracle11g - 具有多个选择和插入的匿名 SQL/PL 块
- python - Python for 循环没有迭代,
- haskell - haskell 反向波兰表示法
- python - 我的代码(Python)试图从某些区域中选择一堆 CSS
- javascript - Alexa - 通过 Lambda 访问外部 API
- typescript - TypeScript:仅从联合中排除确切的 {}
- python - 石墨烯和 Django 关于关系
- python - Python - Threading.thread 在调用具有值的方法后返回“None”
- java - 为什么我不能在 java 中按句点解析?
- python-3.x - 在 windows 下,在重新启动内核之前,在 spyder 中看不到 python3 库更改