twain3.0/huagao/ImageProcess/ImageApplyChannel.h

47 lines
1017 B
C
Raw Normal View History

#ifndef IMAGE_APPLY_CHANNEL_H
#define IMAGE_APPLY_CHANNEL_H
#include "ImageApply.h"
class CImageApplyAdjustColors;
class CImageApplyChannel : public CImageApply
{
public:
typedef enum channel
{
Red, //<2F><>ɫͨ<C9AB><CDA8>
Green, //<2F><>ɫͨ<C9AB><CDA8>
Blue, //<2F><>ɫͨ<C9AB><CDA8>
All, //ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HSVɫ<56>ʽ<CABD>У<EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD>80<38><30>ɫ<EFBFBD><C9AB>
Invalid, //<2F><>Ч
Except_Red, //<2F><><EFBFBD><EFBFBD>ɫͨ<C9AB><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Except_Green, //<2F><><EFBFBD><EFBFBD>ɫͨ<C9AB><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Except_Blue //<2F><><EFBFBD><EFBFBD>ɫͨ<C9AB><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}Channel;
public:
CImageApplyChannel();
CImageApplyChannel(Channel channel);
virtual ~CImageApplyChannel(void);
virtual void apply(cv::Mat& pDib,int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
private:
void except_channel(const cv::Mat& src, cv::Mat& dst, int channel);
void colourless(const cv::Mat& src, cv::Mat& dst, uchar threshold = 80);
private:
Channel m_channel;
CImageApplyAdjustColors* colors;
};
#endif // !IMAGE_APPLY_CHANNEL_H