python - 如何从一组图像中显示像素随时间的变化?(随时间成像的亮度变化对象)
问题描述
我想用热图显示一组图像的强度/亮度随时间的变化。这些是随时间成像的亮度变化物体的图像。这将有助于查看对象的哪些部分(哪些像素)具有最大的亮度变化。
我目前正在使用 OpenCV 来处理这些图像,但找不到任何直接获取此热图的方法。除此之外,如果有人可以提出一种计算方差的方法,而不必为每个像素的值创建一个单独的数组(也许直接从图像堆栈中计算它?)它也会很有帮助。
解决方案
生成一些合成数据:
- 所有像素都随着标准 3 的变化而变化
- 一些像素变化(形状 X),标准为 5
代码:
import cv2
lena = cv2.imread("lena.png", 0)
lena = cv2.resize(dices, (100,100))
images = np.zeros((30, *lena.shape))
images[0] = lena.astype('float64')
mask = np.rot90(np.eye(100)) + np.eye(100)
for i in range(1,30):
img = images[i-1]
img += np.random.randn(*lena.shape)*3
img += mask*5
images[i] = img
创建的图像集如下所示
渲染图像的代码:
plt.close('all')
plt.figure(figsize=(25,25))
for i in range(25):
plt.subplot(5,5,i+1)
plt.imshow(images[i],cmap='gray')
plt.xticks([])
plt.yticks([])
plt.tight_layout()
plt.show()
最后,通过热图找到以不同速度变化的图像部分。
import seaborn as sns; sns.set()
ax = sns.heatmap(images.std(axis=0))
plt.show()
我们拿回了我们的面具。
推荐阅读
- discord.py - TypeError: can't send non-None value to a just-started coroutine discord.py
- c++ - 如何从用 g++ 编译的 Windows 程序中删除控制台?
- python - 如何从 pd.cut 范围中获取第一个值
- c# - C# 如何在调用 P/Invoke Sendmessage 时捕获 WIN32 0XFFFF 异常
- php - 通过控制器从 laravel 中的数据库创建下拉列表
- java - Android Studio - AVD 说一直停止
- python - Discord.py 给用户写直接消息
- javascript - JavaScript 到 Python
- python - 如何使用我的 reverse_lazy 函数解决此错误?
- flutter - Flutter 日历教程问题 SOS