当前位置:   article > 正文

opencv学习日志26--检测圆孔并且标记_opencv孔洞检测

opencv孔洞检测

前言

这篇文章主要讲述opencv图像处理中的检测圆孔并且标记

一、代码

//检测圆孔并且标记
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
	cv::Mat dst;
	cv::Mat dstbin;
	cv::Mat dsttemp;
	cv::Mat finalpicture;
	cv::Mat src = imread("C://Users//john//Desktop//1.jpg");
	cv::Mat srcgray = imread("C://Users//john//Desktop//1.jpg", 0);
	threshold(srcgray, dstbin, 100, 255, THRESH_OTSU);  //大津法

	src.copyTo(dst);  
	bitwise_not(dstbin, dsttemp);
	vector<vector<Point>> contours;

	vector<Vec4i> hirearchy;
	findContours(dsttemp, contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);


	int num = contours.size();

	cout << num << endl;

	for (int i = 0; i < num; i++)
	{
		//RotatedRect rbox = minAreaRect(contours[i]);
		//cv::Point2f vtx[4];		
		//rbox.points(vtx);
		//cout << vtx << endl;
		//if((vtx[0].x-vtx[1].x) + (vtx[0].y - vtx[1].y) ^ 2)
		//cout << contours[i] << endl;
		float area = contourArea(contours[i]);//计算轮廓面积
		float len = arcLength(contours[i], true);//计算轮廓周长
		float roundness = (4 * CV_PI * area) / (len * len);//圆形度
	//	cout << area << endl;
		if (roundness > 0.5&&area>=100)
		{
			drawContours(dst, contours, i, Scalar(255, 0, 0), -1, 8);
		}
		//drawContours(dst,contours, i, Scalar(255, 255, 255),-1,8, InputArray hierarchy = noArray(), int maxLevel = INT_MAX, Point offset = Point())
	}

	cv::imshow("dsttemp", dsttemp);
	cv::imshow("dst", dst);

	//cv::imshow("src", src);
	//cv::imshow("dsttemp", dsttemp);
	waitKey(0);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

总结

1.代码可以直接运行,如果有不懂得请留言哦。
2.缺少素材图片,后续补上谢谢。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/72428
推荐阅读
相关标签
  

闽ICP备14008679号