实际例程源于本人的挑战杯作品——基于视觉的捡球机器人。
配置环境:vs2015+opencv3.0+win10/ubuntu14.04
机器人通过自带的摄像头对散落在地上的乒乓球进行识别,随后进行拾取。本作品的主要难度在于如何在复杂的背景中准确地识别到乒乓球并跟踪。以及在识别到乒乓球后如何使机器人准确的向乒乓球运行。
此次的程序为最初版。先用颜色识别对整个图像进行过滤,然后再对过滤后的图像进行霍夫找圆。
缺点:程序运行速度慢,光线的影响比较大,找到的圆不够稳定。
例程(win10)
#include <iostream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int g_nThresh = 100;//137
Mat canny_output;
Mat imgOriginal;
Mat imgHSV;
Mat imgThresholded;//二值化后的图像数组
Mat bf;//对灰度图像进行双边滤波
Mat element = getStructuringE