前言
最近在网上偶然看到Halcon检测电路连线问题,感觉挺有意思,本人打算用Opencv来实现下,说做就做。
1. 检测步骤
这里主要使用了形态学开闭操作绝对差值进行检测,然后使用轮廓查找与过滤的方法来确定最终检测结果,很简单吧,但是参数设置是个大问题,本人尝试了很多次,才达到比较好的效果,而且通用性感觉不是很好。
2. C++实现
#include <iostream>
#include <opencv2\imgcodecs.hpp>
#include <opencv2\core.hpp>
#include <opencv2\imgproc.hpp>
#include <opencv2\highgui.hpp>
#include <vector>
using namespace cv;
int main()
{
std::string strImgFile = "C:\\Temp\\common\\Workspace\\Opencv\\images\\detect_broken.png";
Mat mSrc = imread(strImgFile);
CV_Assert(!mSrc.empty());
Mat mGray;
cvtColor(mSrc