ColorTrackingwithEMGUcv手表?v=9qky6g8NRmI。但我无法弄清楚ThresholdBinary()方法是如何工作的,以及它是否正确。这是代码的相关部分:cam._SmoothGaussian(3);blobDetector.Update(cam);ImagebinaryImage=cam.ThresholdBinary(newBgr(145,0,145),newBgr(0,0,0));图像binaryImageGray=binaryImage.Conver();blobTracker.Process(cam,binaryImageGray);foreach(MCvBlobblobinblobTracker){cam.Draw((Rectangle)blob,newBgr(0,0,255),2);当我显示binaryImage时,我什至没有得到blob。我只得到一个黑色图像。通常,此类应用程序的颜色斑点检测部分的工作方式如下:将图像转换为HSV(色调、饱和度、值)颜色空间。用色相值接近目标值的所有像素过滤色相通道。阈值处理通常为所有像素提供高于或低于阈值的值。您对某个目标值附近的像素感兴趣。过滤生成的蒙版,可能使用饱和度/值通道或删除小斑点。理想情况下,只保留目标blob。一些示例代码旨在寻找绿色对象(色调~50),例如视频中的绿色球:以上是C#学习教程:使用EMGUcv进行颜色跟踪的全部内容,如果对大家有用,需要的话了解更多C#学习教程,希望大家多多关注—//1.ConverttheimagetoHSVusing(Imagehsv=original.Convert()){//2.获取3个通道(色调,饱和度)和值)组成HSV图像Image[]channels=hsv.Split();try{//3.从色调通道中移除所有不在[40,60]范围内的像素CvInvoke.cvInRangeS(channels[0],newGray(40).MCvScalar,newGray(60).MCvScalar,channels[0]);//4.显示结果imageBox1.Image=channels[0];}最后{通道[1].Dispose();通道[2].处置();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
