相关疑难解决方法(0)

检测图像上的硬币(和拟合椭圆)

我目前正在开展一个项目,我正试图检测一些平躺在平面上的硬币(即桌子).硬币不重叠,不会被其他物体隐藏.但可能有其他物体可见,照明条件可能不完美...基本上考虑自己拍摄你的桌子上有一些硬币.

所以每个点都应该是椭圆形.由于我不知道相机的位置,椭圆的形状可能会有所不同,从圆圈(从顶部看)到扁平椭圆,取决于硬币拍摄的角度.

我的问题是,我不知道如何提取硬币,最后在它们上面放置椭圆(我正在寻找进一步的计算).

现在,我刚刚通过在OpenCV中设置阈值进行了第一次尝试,使用findContours()获取轮廓线并拟合椭圆.不幸的是,轮廓线很少给我硬币的形状(反射,光线不好......),这种方式也不是首选,因为我不希望用户设置任何阈值.

另一个想法是在该图像上使用椭圆的模板匹配方法,但由于我不知道相机的角度和椭圆的大小,我认为这不会很好...

所以我想问一下是否有人能告诉我一种方法可以解决我的问题......

有没有快速的方法从图像中提取三个硬币?计算应该在移动设备上实时进行,并且该方法对于不同或变化的灯光或背景的颜色不应过于敏感.

如果有人能给我任何关于哪种方法对我有用的提示,那会很棒...

opencv image image-processing image-recognition

44
推荐指数
3
解决办法
4万
查看次数

使用OpenCV进行椭圆检测

我想用OpenCV for Android检测省略号,使用OpenCV 2.4.1包中的Tutorial 2-Basic作为起点.请注意,我的椭圆将是一个完美的Photoshop.

根据我的理解,使用"HoughCircles"只会找到完美(或如此)的圆圈,从而留下椭圆.

任何帮助都会非常感激,因为我是OpenCV的初学者

这是我到目前为止所尝试的

    case Sample2NativeCamera.VIEW_MODE_CANNY: (ignore the Canny mode...)

        capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
        Imgproc.HoughCircles(mGray, mCircles, Imgproc.CV_HOUGH_GRADIENT, 1, 20);
        Log.d("Ellipse Points", " X " + mCircles.get(1,1)[0] + mCircles.get(1, 1)[1]);

        break;
Run Code Online (Sandbox Code Playgroud)

如果您认为任何更多信息可能有用,请告诉我.

java android opencv image-processing computer-vision

11
推荐指数
2
解决办法
2万
查看次数