OpenCvSharp里有自带的伪彩色,如
Cv2.ApplyColorMap(dst1, dst2, ColormapTypes.Winter);
但是自带的伪彩色常常不够用,就只能自定义自己想要的颜色,如下:
Cv2.LUT(src, table, b);
实现方式:
private byte[] GetTableByMax(int max)
{
byte[] table = new byte[256];
for (int i = 0; i < 256; i++)
{
table[i] = (byte)(i / 255.0f * max);
}
return table;
}
private Mat CustomColorMap(Mat src, Color color)
{
Mat dst = new Mat();
Mat b = new Mat();
Mat g = new Mat();
Mat r = new Mat();
byte[] table = GetTableByMax(color.B);
Cv2.LUT(src, table, b);
table = GetTableByMax(color.G);
Cv2.LUT(src, table, g);
table = GetTableByMax(color.R);
Cv2.LUT(src, table, r);

本文介绍了如何在OpenCvSharp中通过LUT函数结合自定义颜色映射表,实现更丰富的伪彩色效果。首先,展示了OpenCvSharp内置的ColormapTypes.Winter伪彩色,然后详细讲解了通过GetTableByMax方法生成自定义颜色映射表,并应用到图像上,最后给出了一个使用红色调的伪彩色转换实例。
最低0.47元/天 解锁文章
2012

被折叠的 条评论
为什么被折叠?



