twain3.0/huagao/ImageProcess/ImageApplyDiscardBlank.h

56 lines
1.4 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]
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.1
* ====================================================
*/
#ifndef IMAGE_APPLY_DISCARD_BLANK_H
#define IMAGE_APPLY_DISCARD_BLANK_H
#include "ImageApply.h"
class CImageApplyDiscardBlank : public CImageApply
{
public:
CImageApplyDiscardBlank(int blockSize, int devTh);
/*
* isnormal [in]:true<EFBFBD><EFBFBD>׼ģʽ<EFBFBD><EFBFBD>falseΪƱ<EFBFBD>ݸ<EFBFBD>дֽģʽ
* */
CImageApplyDiscardBlank();
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