code_device/hgdriver/ImageProcess/ImageApplyDogEarDetection.h

65 lines
2.8 KiB
C
Raw Normal View History

2022-07-29 08:41:34 +00:00
/*
* ====================================================
*
*
* 2020/10/30
* 2020/10/30 v1.0
* 2021/11/04 v1.1 5
* 2022/07/15 v1.2
* 2022/07/21 v1.3 21
* 2022/07/21 v1.3.1 12
* 2022/07/22 v1.4 zoom_x,zoom_yXY轴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