在C#中是否有简写语法来实现:
if ((x == 1) || (x==2) || (x==5) || (x==13) || (x==14))
Run Code Online (Sandbox Code Playgroud)
......更短?像(假设)的东西
if (x in {1, 2, 5, 13, 14})
Run Code Online (Sandbox Code Playgroud)
我"觉得"它存在,我只是在精神上和Googly短暂.实际上,我必须经常测试一堆枚举,这是不可读的.如果语言已经支持,我也讨厌做一个小帮助函数.
提前致谢!
编辑
有一些聪明的解决方案涉及列表...但我希望有一种纯粹的逻辑结构.如果它不存在,那就这样吧.谢谢!
我不一定需要源代码,但寻找伪代码或如何解决这个问题的想法。我有一个摄像头对准我的水表,想要将使用情况记录到数据库中。过去几周我一直在使用 OpenCV,并且数字检测工作正常。(最后一个数字会带来问题,因为它会无休止地旋转,而不是像前 5 个那样与数字对齐,因此完整数字的显示时间不到一半。)
无论如何,为了获得最佳分辨率,我想跟踪实际的大红色针。现在我要绕一圈找到“最红”的像素,并用它来计算针的角度。只要光线充足并且相机不移动,它就可以工作。
我猜我可以用 Canny 边缘检测来实现一个技巧......最终我只是想找到最长线的角度?针的颜色独特,应该有助于消除很多误报,但我如何实际应用过滤器呢?
(请注意,仪表左下角有一个红色的小旋转器,与指针的颜色相同。我需要确保它不会误触发某些东西。)