同志们已经快到年底了,下周公司就要开年会了。。。。。。
/* ************************** 我 爱 敲 代 码 ****************************** */
原图如下:
include <opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat edges;
Mat src1 = imread("D:\\11.png");
//Mat src1(src, Rect(1200, 1040, 300, 300));//ROI设置
if (!src1.data)
return -1;
//imshow("src1", src1);
cvtColor(src1, edges, CV_BGR2GRAY);//灰度图
GaussianBlur(edges, edges, Size(9, 9), 2, 2);//高斯滤波
vector<Vec3f>circles;//坐标
HoughCircles(edges, circles, CV_HOUGH_GRADIENT, 1.5, 70, 200, 70, 0, 0);//霍夫圆变换检测圆
for (size_t i = 0; i < circles.size(); i++)
{
Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
circle(src1, center, 3, Scalar(0, 0, 255), -1, 8, 0);//绘制圆心
circle(src1, center, radius, Scalar(0, 255, 0), 2, 8, 0);//绘制圆轮廓
}
putText(src1, "Hello", cvPoint(50, 50), FONT_HERSHEY_COMPLEX, 0.5, Scalar(0, 0, 255));//图片上显示字符
imshow("效果图", src1);
//imshow("huidu", edges);
waitKey(0);
return 0;
}
霍夫圆变换检测圆HoughCircles()函数根据图像识别的需要(圆的大小等等)去修改参数即可。
效果图如下:
/* ********************************** 我 爱 敲 代 码 ******************************** */