mirror of http://192.168.1.51:8099/lmh188/twain3.0
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#ifndef IMAGE_APPLY_OUT_HOLE_H
|
|
#define IMAGE_APPLY_OUT_HOLE_H
|
|
|
|
#include "ImageApply.h"
|
|
|
|
class CImageOutHole : public CImageApply
|
|
{
|
|
|
|
public:
|
|
|
|
CImageOutHole();
|
|
|
|
CImageOutHole(float borderSize, float edgeScale, double threshold);
|
|
|
|
~CImageOutHole(void);
|
|
|
|
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
|
|
|
|
float getBorderSize() { return m_borderSize; }
|
|
|
|
float getEdgeScale() { return m_edgeScale; }
|
|
|
|
double getThreshold() { return m_threshold; }
|
|
|
|
void setBorderSize(float size) { m_borderSize = size; }
|
|
|
|
void setEdgeScale(float scale) { m_edgeScale = scale; }
|
|
|
|
void setThreshold(double threshold) { m_threshold = (std::min)((std::max)(threshold, 1.0), 254.0); }
|
|
|
|
private:
|
|
|
|
virtual void apply(cv::Mat& pDib, int side);
|
|
|
|
void getRoi(cv::RotatedRect rrect_front, cv::RotatedRect rrect_back, cv::Size srcSize, cv::Rect& roi_front,
|
|
cv::Rect& roi_back, cv::RotatedRect& mask_rotatedRect);
|
|
|
|
std::vector<std::vector<cv::Point> > filterPoly(std::vector<std::vector<cv::Point>>& contours, const std::vector<cv::Vec4i> &m, cv::RotatedRect roi,
|
|
float edgeScale, float areaThreshold);
|
|
|
|
cv::Scalar getBackGroudColor(const cv::Mat& image, const std::vector<cv::Point> pixelPoints);
|
|
|
|
private:
|
|
float m_borderSize;
|
|
float m_edgeScale;
|
|
double m_threshold;
|
|
};
|
|
|
|
#endif // !IMAGE_APPLY_OUT_HOLE_H
|