code_device/hgdriver/ImageProcess/ImageApplyDiscardBlank.h

80 lines
3.3 KiB
C
Raw Normal View History

2022-07-29 08:41:34 +00:00
/*
* ====================================================
* <EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD>հ<EFBFBD>ҳʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>2020/4/21
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ʱ<EFBFBD>2020/4/21 v1.0
2020/8/12 v1.1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>setIntensity<EFBFBD><EFBFBD>setMinArea<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>isNormal<EFBFBD><EFBFBD>ʶλ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setIntensity<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[2, 20]<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[1, 100]
2020/8/25 v1.1.1 ֽ<EFBFBD>ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020/10/16 v1.2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½ӿڣ<EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͼƬ<EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>հ<EFBFBD>ҳ
2020/10/19 v1.2.1 <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>հ<EFBFBD>ҳ<EFBFBD>ж<EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>BUG
2021/04/13 v1.3.0 <EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>׼/Ʊ<EFBFBD>ݱ<EFBFBD>ʶλ
2021/08/12 v1.3.1 <EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD>ֹ<EFBFBD><EFBFBD>ͬopencv<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD>
2021/12/14 v1.3.2 <EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2021/12/15 v1.3.3 ΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2021/12/17 v1.3.4 <EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>ӿڣ<EFBFBD>ʵ<EFBFBD>ֶԴ<EFBFBD>ɫֽ<EFBFBD>ŵĿհ<EFBFBD>ҳ<EFBFBD>ж<EFBFBD>
2022-11-28 08:03:11 +00:00
2022/09/07 v1.3.5 <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>BUG
2022/09/19 v1.4 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿հ<EFBFBD>ҳ<EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2022/09/19 v1.4.1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2022/11/18 v1.4.2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>
2022/11/29 v1.5 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD>
2022/12/03 v1.5.1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ͻ<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջҶ<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2023/10/12 v1.6 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĿհ<EFBFBD>ҳʶ<EFBFBD>𷽰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>JEPG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>հ<EFBFBD>ҳ<EFBFBD><EFBFBD>
2023/10/20 v1.6.1 <EFBFBD>Ż<EFBFBD>JPEG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>жϿհ<EFBFBD>ҳ
2023/10/30 v1.7 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>JPEG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>жϿհ<EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
2023/11/04 v1.7.1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>PNG<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>жϿհ<EFBFBD>ҳ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
2023/12/01 v1.8 ȡ<EFBFBD><EFBFBD>JPEG/PNG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>жϿհ<EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2023/12/04 v1.9 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ʡ<EFBFBD>
2023/12/05 v1.9.1 <EFBFBD>޸Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸IJ<EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD>͡<EFBFBD>
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.9.1
2022-07-29 08:41:34 +00:00
* ====================================================
*/
#ifndef IMAGE_APPLY_DISCARD_BLANK_H
#define IMAGE_APPLY_DISCARD_BLANK_H
#include "ImageApply.h"
class GIMGPROC_LIBRARY_API CImageApplyDiscardBlank : public CImageApply
{
public:
2022-11-28 08:03:11 +00:00
/// <summary>
/// <20>հ<EFBFBD>ҳʶ<D2B3><CAB6>
/// </summary>
/// <param name="pDib">ԭͼ</param>
/// <param name="threshold"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡֵ<C8A1><D6B5>Χ[0, 255]</param>
/// <param name="edge"><3E><>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ[0, +<2B><>]</param>
/// <param name="devTh"><3E>ʼ<EFBFBD><CABC>ж<EFBFBD><D0B6><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵԽ<D6B5>ͣ<EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ڱʼ<DAB1><CABC><EFBFBD>ȡֵ<C8A1><D6B5>Χ[0, +<2B><>]</param>
/// <param name="meanTh"><3E>ĸ<EFBFBD><C4B8><EFBFBD>ɫ<EFBFBD><C9AB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ɫ<EFBFBD><C9AB>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>Ϊ<EFBFBD>ǿհ<C7BF>ҳ(<28><>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ɫ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ϊ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ255ʱ<35><CAB1><EFBFBD><EFBFBD>ɫ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>Ϊ<EFBFBD>ǿհ<C7BF>ҳ)<29><>ȡֵ<C8A1><D6B5>Χ[0, 255]</param>
/// <param name="dilate"><3E><><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ӵ㡣ȡֵ3<D6B5><33>5<EFBFBD><35>7<EFBFBD><37>9...</param>
CImageApplyDiscardBlank(double threshold = 40, int edge = 50, double devTh = 30, double meanTh = 0, int dilate = 3);
2022-07-29 08:41:34 +00:00
virtual ~CImageApplyDiscardBlank(void);
virtual void apply(cv::Mat& pDib, int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
2022-11-28 08:03:11 +00:00
/// <summary>
/// <20>հ<EFBFBD>ҳʶ<D2B3>𡣸<EFBFBD><F0A1A3B8><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>
2022-11-28 08:03:11 +00:00
/// </summary>
/// <param name="pDib">ԭͼ</param>
/// <param name="threshold"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ</param>
/// <param name="edge"><3E><>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD></param>
/// <param name="devTh"><3E>ʼ<EFBFBD><CABC>ж<EFBFBD><D0B6><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵԽ<D6B5>ͣ<EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ڱʼ<DAB1><CABC><EFBFBD></param>
/// <param name="meanTh"><3E>ĸ<EFBFBD><C4B8><EFBFBD>ɫ<EFBFBD><C9AB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ɫ<EFBFBD><C9AB>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>Ϊ<EFBFBD>ǿհ<C7BF>ҳ<EFBFBD><D2B3></param>
/// <param name="dilate"><3E><><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ӵ㡣<D3B5><E3A1A3><31><CAB1><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ֵԽ<D6B5><D4BD>Խ<EFBFBD><D4BD><EFBFBD>׺<EFBFBD><D7BA><EFBFBD><EFBFBD>ӵ<EFBFBD></param>
/// <returns>trueΪ<65>հ<EFBFBD>ҳ<EFBFBD><D2B3>falseΪ<65>ǿհ<C7BF>ҳ</returns>
static bool apply(const cv::Mat& pDib, double threshold = 40, int edge = 50, double devTh = 30, double meanTh = 200, int dilate = 3);
2022-07-29 08:41:34 +00:00
private:
double m_threshold;
int m_edge;
double m_devTh;
double m_meanTh;
int m_dilate;
2022-07-29 08:41:34 +00:00
};
#endif // !IMAGE_APPLY_DISCARD_BLANK_H