机器视觉中所用的标志点一般为圆形,圆形标志点会因拍摄角度的问题而在图像中呈现椭圆形,因此标志点检测一般是指椭圆检测,目的是获得标志点圆心坐标。OpenCV实现如下,编程环境为Qt5.3.2.
需要包含的OpenCV头文件如下:
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv2/imgproc/imgproc.hpp>
#include <math.h>
源文件内容:
int sliderPos = 60;//图像二值化阈值
int sizeLimit = 8;//设置检出圆的大小下限,小于此值的圆认为不是标志点,过滤掉
Mat image;
void processImage(int, void*);
HWidget::HWidget(QWidget *parent)
: QWidget(parent)
{
image = imread("D:/1.png",0);
imshow("source", image);
namedWindow("result", WINDOW_AUTOSIZE);
// Create toolbars. HighGUI use.
createTrackbar( "threshold", "result", &sliderPos, 255, processImage );
createTrackbar( "sizehold", "result", &sizeLimit, 20, processImage );
processI