如何更改Emgu CV图像的调色板

时间:2013-12-05 16:20:24

标签: c# bitmap emgucv

我想改变EmguCV图像的ColorPalette,但调色板不会改变!

示例代码:

var img = new Image<Gray, byte>(10, 10);
ColorPalette pal = img.Bitmap.Palette;
pal.Entries[0] = Color.FromArgb(255, 0, 0, 255);
img.Bitmap.Palette = pal;
//img.Bitmap.Palette.Entries[0] != pal.Entries[0];

1 个答案:

答案 0 :(得分:1)

对我而言,ColorPalette似乎无法改变。此外,Entries属性只有一个getter,没有setter。

但如果你坚持认为可以改变ColorPalette,我相信你。那么,这里有一个关于如何解决它的想法:

var img = new Image<Gray, byte>(10, 10);
Bitmap bmp = img.Bitmap;
ColorPalette pal = bmp.Palette;
pal.Entries[0] = Color.FromArgb(255, 0, 0, 255);
bmp.Palette = pal;
Image<Gray, byte> changedImage = new Image<Gray, byte>(bmp);

我们的想法是您从已更改ColorPalette的位图创建一个新图像(或者您可以用img = new Image<Gray, byte>(bmp);替换旧图像)。我自己没试过,但我觉得值得一试!