opencv - Emgu.CV.InRange 返回黑色图像
问题描述
我得到了一张图片并执行了以下功能:
Emgu.CV.CvInvoke.InRange(Img, new Emgu.CV.ScalarArray(new Emgu.CV.Structure.MCvScalar((byte)0, (byte)0, (byte)0)), new Emgu.CV.ScalarArray(new Emgu.CV.Structure.MCvScalar((byte)255, (byte)255, (byte)255)), Img);
如果我不执行显式转换为字节,则没有任何变化。
该函数返回一个黑色图像,但我不明白,因为 0 到 255 的范围应该包括所有颜色。如果我评论该功能,图像是正确的图像,我最初加载。
问候,扬
解决方案
好的,我知道了。由于该 Mat 对象有四个通道,因此上限和下限的数组也需要有四个项目。
Emgu.CV.CvInvoke.InRange(Img, new Emgu.CV.ScalarArray(new Emgu.CV.Structure.MCvScalar((byte)0, (byte)0, (byte)0), (byte)0)), new Emgu.CV.ScalarArray(new Emgu.CV.Structure.MCvScalar((byte)255, (byte)255, (byte)255, (byte)255)), Img);
推荐阅读
- docker - 我想创建 2 个具有相同 IP 范围的 docker 网络
- android - Android:在具有线性布局的按钮下方插入视图
- heroku - React 应用程序在桌面上工作,但在移动设备上显示空白页面
- crystal-lang - 是否可以获得损坏的符号链接的解析路径?
- python - 如何在同一窗口中同时显示和更新两个 matplotlib 图?(第2部分)
- swift - 具有自动布局和滚动功能的奇怪 TextView 行为
- dialogflow-es - Dialogflow v2 API - 模拟器中未显示的卡片
- julia - 使用 ArrayFire.jl 进行广播
- google-bigquery - 有效地使用 BigQuery 的 APPROX_QUANTILES
- android - 将 Ereza/CustomActivityOnCrash 与 Fabric crashlytics 一起使用