首页 > 解决方案 > 压力到图像和图像到压力的转换

问题描述

编辑:我正在研究压力图数据集,其中压力传感器数据是“床上姿势压力数据”。

数据集:https ://physionet.org/content/pmd/1.0.0/

使用下面的代码,我可以将压力数据转换为图像。

line = f.readlines()[3]
lst1 = line.strip().split()
lst = [int(x) for x in lst1]

# Convert into a 64*32 array
rr = np.asarray(lst).reshape(64, 32)

plt.imshow(arr, cmap='hot', interpolation='nearest')

形成的图像如下:

在此处输入图像描述

现在,我的主要座右铭是分别分析每个身体部位。为此,我使用身体部位的边界框,然后我需要获取该部位的原始传感器数据,然后使用压力值进行分析。

假设我正在分析头部。为此,我必须获取该子部分的原始压力数据。子部分由使用图像的边界框决定。

如何使用图像的边界框获取原始压力值?

标签: opencvimage-processingcomputer-visionbioinformaticsyolo

解决方案


阅读您的评论,我认为您使用输出图像来确定头部的位置。然而,输出图像按比例放大,这意味着比数据点数量更多的像素。这就是为什么您的范围超出数组维度的原因。

这是一个图像,其中每个数据点为 1 个像素(很难看到,灰度值):

在此处输入图像描述

我使用您的代码绘制了相同的图像:

在此处输入图像描述

请注意如何将实际数据点计算为色块。轴等于列/行中的数据点计数。我将鼠标放在头部位置,所以它的(四舍五入)位置在 x=13,y=3。

然后,一般头部区域的选择:

head = arr[1:7,10:18]
print(head)
plt.imshow(head, cmap='hot', interpolation='nearest')

给出值:

[[ 49 54 99 182 214 106 33 35]
[ 22 49 229 257 314 224 81 5]
[ 15 55 131 194 177 199 59 5]
[ 7 20 61 96 144 346 19 3]
[ 2 3 19 033 6 ]
[ 9 5 11 13 72 46 2 0]]

在此处输入图像描述

可能有点难以看到,因为颜色已重新映射。


推荐阅读