Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 理解如何将颜色应用于每个像素的问题_Image Processing - Fatal编程技术网

Image processing 理解如何将颜色应用于每个像素的问题

Image processing 理解如何将颜色应用于每个像素的问题,image-processing,Image Processing,我对动作识别和任何与图像处理相关的东西都是新手。我正在学习一篇关于图像处理的论文。它是基于人体姿态估计的动作识别。以下是其工作原理的摘要: 我们首先在每一个场景中运行最先进的人体姿势估计器[4] 构建并获取每个人体关节的热图。这些热图编码 每个像素包含特定关节的概率。我们 使用取决于相对温度的颜色为这些热图着色 视频剪辑中帧的时间。对于每个关节,我们求和 所有帧上的彩色热图,以获得药剂表示 对于整个视频剪辑 因此,对于帧t中的每个关节j,它提取一个热图H^t_j[x,y],这是像素(x,y)在帧

我对动作识别和任何与图像处理相关的东西都是新手。我正在学习一篇关于图像处理的论文。它是基于人体姿态估计的动作识别。以下是其工作原理的摘要:

我们首先在每一个场景中运行最先进的人体姿势估计器[4] 构建并获取每个人体关节的热图。这些热图编码 每个像素包含特定关节的概率。我们 使用取决于相对温度的颜色为这些热图着色 视频剪辑中帧的时间。对于每个关节,我们求和 所有帧上的彩色热图,以获得药剂表示 对于整个视频剪辑

因此,对于帧t中的每个关节j,它提取一个热图H^t_j[x,y],这是像素(x,y)在帧t处包含关节j的可能性。该热图的分辨率用W*H表示

我的第一个问题:热图到底是什么?我想确定heatmap是否是一个概率矩阵,例如,(1,1)中的元素包含一个数字,该数字表示(1,1)像素可能包含关节的概率

在下一步中,该热图用C通道着色,C通道显示每个像素的可视化颜色数。这里的想法是对帧的关节热图使用相同的颜色

我们首先提出了两个通道的彩色化方案 (C=2)。例如,对于可视化,我们可以使用红色和绿色 第一频道和第二频道。其主要思想是为图像中的第一帧着色 红色,最后一个是绿色,中间的比例相等 (50%)绿色和红色。红色和绿色的确切比例是a 相对时间t的线性函数,即t−1/T−1,见图2 (左)。对于C=2,我们有o(t)=(t−1/T−1, 1−(t−1/T−1) .这个 像素(x,y)和通道c的接头j的彩色热图 时间t由下式给出:

图2在上下文中提到:

我的问题是,我无法计算这个方程(o(t)=(t−1/T−1, 1−(t−1/T−1) )表示一帧中一种颜色(即红色)的程度,或表示这两种颜色的比例。如果它分别用于每个颜色通道,当帧数(t)等于7时,o_红色(t)=(1/6,5/6)表示什么


或者如果它用于两个通道,因为文章说第一帧是红色的,最后一帧是绿色的,我们如何解释o(1)=(0,1)如果第一个元素表示红色的比例,第二个元素表示绿色的比例?据我所知,这意味着第一帧的颜色是绿色而不是红色!

在这个概念中,时间和像素位置之间存在微妙的关系

据我所知:这种热图是为了在你的图像中加入时间。其目的是只在一张图像中显示视频捕捉到的移动对象的运动,因此图像中与场景中固定(未移动)对象(如背景像素)相关的每个像素都为零(黑色).相反,如果在视频中,移动对象从像素位置经过,图像中的相应像素将是彩色的,其颜色取决于在像素中看到的移动对象的帧数(时间)

例如,我们在摄像机前面有一个完全黑的窗帘,我们正在拍摄。我们得到一个10帧的视频,在第一个瞬间(帧1),一个非常小的白色球进入场景并在帧1的像素(1,1)中被捕获。然后在第二帧,小球在像素(1,2)被捕获。,等等。当我们在第10帧停止拍摄时,将在像素(1,10)处看到球。现在我们有10帧,其中一帧的不同位置有一个白色像素,我们希望只在一张图像中显示整个过程,因此该图像的10个像素将是彩色的(像素:(1,1),(1,2),(1,3),…,(1,10))其他像素是黑色的

使用您提到的公式,每个像素的颜色根据相关帧编号(球被捕获的帧编号)计算:

现在,如果你看图像,你会看到一条10像素长的彩色线,开始时是红色的,到最后(第10个像素),颜色逐渐变为绿色。这意味着球在1秒钟的视频中从像素1移动到像素10


(如果我在解释的任何一点上都不清楚,请评论,我将详细说明)

谢谢,我理解你的解释,但问题是我没有发现热图中的值是什么?这是一个矩阵吗?如果是,值是什么?它们是概率还是什么?@helen这只是一个图像,一个高度和宽度与视频帧相同的2D矩阵。它的值不是概率,而是浮动图像(浮动图像的像素值介于0和1之间)。像素值的变化只是为了更好地显示。那么“这些热图对每个像素包含特定关节的概率进行编码”是什么意思呢“海伦,我担心在概念的定义上有点扭曲,我不会用这个词来解释这样的概念。尽管我们可以把像素值看作是概率,因为在一个像素处的“0”值意味着从那个像素传递物体的零概率,但是你可以忽略“概率”。对于这件事,所有的结果对你来说都是合理的
T=10 # 10 frames

pixel (1,1) got the white ball at frame 1 so its color would be ((0/9),1-(0/9)) which means the green channel has a zero value in that pixels and the red channel has 1 value so this pixel looks completely red.

pixel (1,2) got the white ball at frame 2 so its color would be (1/9 , 8/9), and  this pixels is more red than green.

... # continue so on for other 7 pixels

pixel (1,10) got the white ball at frame 2 so its color would be (1 , 0), and  this pixels is completely green.