写在前面
这里我其实准备了两张图,一张圆形交错的,一张T细胞在显微镜下呈现的景象,但是圆检测怎么调,都调不到满意的结果,不知道是什么参数不太合适。
代码
#include<iostream>
#include<opencv2/opencv.hpp>
#include<cmath>
using namespace std;
using namespace cv;
int main() {
Mat src = imread("A:\\专用\\TestForTheCV\\class22显微镜下的T细胞.jpg");
Mat dst;
imshow("图片", src);
//中值滤波
Mat median;
medianBlur(src, median, 3);
cvtColor(median, median, CV_BGR2GRAY);
//霍夫圆检测
vector<Vec3f> pcircles;
HoughCircles(median, pcircles, CV_HOUGH_GRADIENT, 1, 10, 100, 30,10, 30);
imshow("media", median);
src.copyTo(dst);
for (size_t i = 0; i < pcircles.size(); i++) {
Vec3f circl = pcircles[i];
circle(dst, Point(circl[0], circl[1]), circl[2], Scalar(0, 0, 255), 2, LINE_AA);
circle(dst, Point(circl[0], circl[1]), 2, Scalar(255, 0, 5), 2, LINE_AA);
}
imshow("dst", dst);
waitKey(0);
return 0;
}