我想改变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];
答案 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);
替换旧图像)。我自己没试过,但我觉得值得一试!