opencv中的InRange方法与python/cv2和c#/emgu有什么区别?
我正在尝试用C#将一个小型opencv python脚本转换为emgu 在python代码中opencv中的InRange方法与python/cv2和c#/emgu有什么区别?,c#,python,opencv,emgucv,C#,Python,Opencv,Emgucv,我正在尝试用C#将一个小型opencv python脚本转换为emgu 在python代码中 COLOR_MIN = np.array([104, 34, 255], np.uint8) COLOR_MAX = np.array([124, 34, 255], np.uint8) frame_threshed = cv2.inRange(hsv_img, COLOR_MIN, COLOR_MAX) cv2.imshow("frame thresh", frame_threshed) 正确设置c
COLOR_MIN = np.array([104, 34, 255], np.uint8)
COLOR_MAX = np.array([124, 34, 255], np.uint8)
frame_threshed = cv2.inRange(hsv_img, COLOR_MIN, COLOR_MAX)
cv2.imshow("frame thresh", frame_threshed)
正确设置cv2.imshow显示的图像阈值
我已将代码转换为C#,如下所示:
var min = new Hsv(104, 34, 255);
var max = new Hsv(124, 34, 255);
var thresh = hsvImg.InRange(min, max);
CvInvoke.cvShowImage("thresh", thresh);
这里只画了一个黑色的图像,所以没有任何东西与阈值匹配
在这两种情况下,我使用相同的.PNG文件作为输入。我在osx上编写了python代码,.net代码在win8虚拟机中运行-这可能与颜色配置文件有关吗
如果您有任何建议或事情想让.NET版本正常工作,我们将不胜感激!!谢谢 问题似乎是我使用的是一个旧版本的emgu,并且是按照emgu的2.4文档进行的,在该文档中,上述内容应该可以工作 在我使用的版本(2.2)中,以下工作:
var min = new Hsv(103, 33, 254);
var max = new Hsv(125, 35, 256);
var thresh = hsvImg.InRange(min, max);
CvInvoke.cvShowImage("thresh", thresh);
而不是检查by=它正在使用<和>
这是我的错,不小心点击了NuGet中的错误包。。。更多始终使用命令行的原因;)