twain3.0/huagao/ImageProcess/ImageApplyDiscardBlank.h

63 lines
1.7 KiB
C
Raw Normal View History

/*
* ====================================================
* <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>
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.3.1
* ====================================================
*/
#ifndef IMAGE_APPLY_DISCARD_BLANK_H
#define IMAGE_APPLY_DISCARD_BLANK_H
#include "ImageApply.h"
class CImageApplyDiscardBlank : public CImageApply
{
public:
CImageApplyDiscardBlank();
CImageApplyDiscardBlank(int blockSize, int devTh);
/*
* isnormal [in]:true<EFBFBD><EFBFBD>׼ģʽ<EFBFBD><EFBFBD>falseΪƱ<EFBFBD>ݸ<EFBFBD>дֽģʽ
* */
CImageApplyDiscardBlank(bool isnormal);
virtual ~CImageApplyDiscardBlank(void);
virtual void apply(cv::Mat& pDib, int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
void setIntensity(int val);
void setMinArea(int val) { m_dSize = val; }
static bool apply(const cv::Mat& pDib, int blockSize = 200, int devTh = 15);
private:
static int processRectR(const cv::Mat& image, cv::RotatedRect& rotatedRect, std::vector<cv::Point>& maxContour,
double scale, double thresh, int blobAreaSize);
static bool scalar_LE(const cv::Scalar& val1, const cv::Scalar& val2);
static cv::Mat getRoiMat(const cv::Mat& pDib);
private:
bool m_res;
bool m_isNormalDiscard;
int m_dSize;
cv::Scalar m_devTh;
};
#endif // !IMAGE_APPLY_DISCARD_BLANK_H