C# 迭代EmguCV中Mat的每个像素
我想使用C#为EmguCV中Mat的每个像素赋值。我已经阅读了文档,但没有找到任何方法来做到这一点。我可以用C# 迭代EmguCV中Mat的每个像素,c#,image-processing,emgucv,C#,Image Processing,Emgucv,我想使用C#为EmguCV中Mat的每个像素赋值。我已经阅读了文档,但没有找到任何方法来做到这一点。我可以用图像来做这件事,但我想用垫来做这件事。所以,有人能告诉我怎么做吗。在EmguCV中,您可以使用Data方法获取每个像素的值,但根据文档中的说明,您无法重新分配它。 我从你的问题中了解到,你想把每个像素的颜色值放到Mat类的变量中。如果这是一个问题,你可以看到下面的代码,我的作品完美 Byte[,,] color = new Byte[256, 1, 3];
图像
来做这件事,但我想用垫
来做这件事。所以,有人能告诉我怎么做吗。在EmguCV中,您可以使用Data
方法获取每个像素的值,但根据文档中的说明,您无法重新分配它。
我从你的问题中了解到,你想把每个像素的颜色值放到Mat
类的变量中。如果这是一个问题,你可以看到下面的代码,我的作品完美
Byte[,,] color = new Byte[256, 1, 3];
int i = 0;
for (double x = 0; x < palette.Rows;)
{
color[i, 0, 0] = palette.Data[(int)x, palette.Width / 2, 0];
color[i, 0, 1] = palette.Data[(int)x, palette.Width / 2, 1];
color[i, 0, 2] = palette.Data[(int)x, palette.Width / 2, 2];
i++;
x = x + 3.109;
}
Mat lut = new Mat(256, 1, DepthType.Cv8U, 3);
lut.SetTo(color);
Byte[,]color=新字节[256,1,3];
int i=0;
对于(双x=0;x
我曾在通过任何调色板对图像进行伪着色时使用过这种方法。我已经创建了一个三维数组,并使用Mat
类的SetTo
方法,我刚刚将该数组分配给Mat
。希望这能有所帮助