我有一些特定颜色的列表(大约60种不同的颜色,它们不在范围内),我想通过Emgucv或opencv在图像中检测到它们。 实际上,我将通过颜色来检测一些对象,而现在我不想通过AI方法来进行检测。 通过循环执行此操作非常慢,我正在寻找最快的方法。 预先感谢。
答案 0 :(得分:0)
您可以通过几个步骤进行操作:
1-只需按照以下代码即可将您的图片转换为HSV域
Image<Hsv, byte> hsv = original.Convert<Hsv, byte>()
原始图片可能是任何图片类型。
2-过滤图像:
var m_Lower = new Hsv(mask.Hue - 5, mask.Satuation - 5, mask.Value - 5);
var m_Higher = new Hsv(mask.Hue + 5, mask.Satuation + 5, mask.Value + 5);
Image<Gray, byte> huefilter = hsv.InRange(m_Lower, m_Higher);
3-合并它们,最快的方法是将它们转换为位图并保存(或不保存)然后合并它们
Bitmap img3 = new Bitmap(huefilter.Width, huefilter.Height);
Graphics g = Graphics.FromImage(img3);
foreach (string file in files)
{
img = new Bitmap(file);
img.MakeTransparent(Color.White);
g.DrawImage(img, new Point(0, 0));
}
文件是保存的图像