code_device/hgdriver/ImageProcess/ImageApplyDogEarDetection.h

65 lines
2.8 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.

/*
* ====================================================
* 功能:折角检测。检测原理:计算纸张的理论四角顶点,到实际轮廓最小距离。当任意顶点到轮廓最小距离超过阈值,则判定为折角
* 作者:刘丁维
* 生成时间2020/10/30
* 最近修改时间2020/10/30 v1.0
* 2021/11/04 v1.1 增加背景抗噪机制能够抗5像素的背景噪声
* 2022/07/15 v1.2 增加折角类型判断。区分普通折角,以及扫描不完整导致的折角
* 2022/07/21 v1.3 区分普通折角和越界折角判定条件。先判定是否为边界越界折角若是则报越界折角2若不是再检测是否为普通折角若是则报普通折角1。
* 2022/07/21 v1.3.1 先判定是否为普通折角若是则报普通折角1若不是再检测是否为越界折角若是则报越界折角2。
* 2022/07/22 v1.4 增加参数zoom_x,zoom_y。适应原图XY轴DPI不一致的问题。
* 版本号v1.4
* ====================================================
*/
#ifndef IMAGE_APPLY_DOGEAR_DETECTION_H
#define IMAGE_APPLY_DOGEAR_DETECTION_H
#include "ImageApply.h"
class GIMGPROC_LIBRARY_API CImageApplyDogEarDetection : public CImageApply
{
public:
/// <summary>
/// 折角检测默认构造函数threshold = 40 zoom = 1.0 distance = 50
/// </summary>
CImageApplyDogEarDetection();
/// <summary>
/// 折角检测构造函数
/// </summary>
/// <param name="threshlod">二值化阈值</param>
/// <param name="zoom_x">原图X轴缩放比例对于大尺寸图像而言通过zoom缩小图像可减少计算量。默认值1.0(不缩放)</param>
/// <param name="zoom_y">原图Y轴缩放比例对于大尺寸图像而言通过zoom缩小图像可减少计算量。默认值1.0(不缩放)</param>
/// <param name="distance">理论顶点到实际轮廓最小距离的阈值大于该阈值则判定为折角默认值50像素</param>
CImageApplyDogEarDetection(double threshlod, double zoom_x = 1.0, double zoom_y = 1.0, double distance1 = 50, double distance2 = 50);
virtual ~CImageApplyDogEarDetection(void);
/// <summary>
/// 获取检测结果。该函数须在调用apply之后使用。
/// </summary>
/// <returns>0为非折角1为普通折角2为可能是扫描不完整造成的折角</returns>
inline int getResult() { return m_result; }
virtual void apply(cv::Mat& pDib, int side);
private:
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
private:
double m_threshold;
double m_zoom_x;
double m_zoom_y;
double m_distance1;
double m_distance2;
int m_result;
};
#endif // IMAGE_APPLY_DOGEAR_DETECTION_H