g1g2hardwarechecker/Scanner/LineContinuityAndRGBDetecti...

54 lines
2.1 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* ====================================================
* 功能:
* 作者:何承洁
* 生成时间2023/12/13
* 最近修改时间2023/12/13 v3.0
* 版本号v3.0
* ====================================================
*/
#ifndef LINE_CONTINUITY_AND_RGB_DETECTION_H
#define LINE_CONTINUITY_AND_RGB_DETECTION_H
#include <opencv2/opencv.hpp>
#include <memory>
#include <vector>
#include <opencv2/core/core_c.h>
#include <opencv2/core/types_c.h>
#include <opencv2/imgproc/imgproc_c.h>
class LineContinuityAndRGBDetection
{
public:
LineContinuityAndRGBDetection();
static int isContinuous(const cv::Mat& image);
static int RGB_Judge(const cv::Mat& image);
private:
/// <summary>
/// 获取连通区域轮廓
/// </summary>
/// <param name="src">源图像</param>
/// <param name="contours">结果轮廓集</param>
/// <param name="hierarchy">轮廓集的排序关系。与contours的数量对应受retr选项不同排序会有变化</param>
/// <param name="retr">轮廓集排序方式,默认为链式排序</param>
/// <param name="method">查找算法选择,默认为普通查找</param>
/// <param name="offset">查找起始点默认为0,0点</param>
static void myFindContours(const cv::Mat& src, std::vector<std::vector<cv::Point>>& contours, std::vector<cv::Vec4i>& hierarchy,
int retr = cv::RETR_LIST, int method = cv::CHAIN_APPROX_SIMPLE, cv::Point offset = cv::Point(0, 0));
/// <summary>
/// 过滤连通区域轮廓,获取交叉线
/// </summary>
/// <param name="distance">两交叉线距离交点相差距离默认100超过100则认为断线</param>
static int filterBlock(const std::vector<std::vector<cv::Point>>& contours, const std::vector<cv::Vec4i>& hierarchy, const cv::Size& imageSize, double distance = 100);
static cv::RotatedRect getBoundingRect(const std::vector<cv::Point>& contour);
static double getDistance(cv::Point pointO, cv::Point pointA);
static cv::Point2f getCrossPoint(cv::Vec4i LineA, cv::Vec4i LineB);
};
#endif //LINE_CONTINUITY_AND_RGB_DETECTION_H