code_device/hgdriver/ImageProcess/ImageApplyColorRecognition.h

74 lines
2.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>24λͼת<EFBFBD><EFBFBD>Ϊ256ɫ8λͼ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ڰס<EFBFBD>ͼת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λͼ
* <EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>2020/7/17
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ʱ<EFBFBD>v1.0 2020/7/17
* v1.1 2020/12/15 <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>
* v1.2 2020/12/16 <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>
* v1.3 2021/04/19 <EFBFBD>޸<EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD>ܹ<EFBFBD>ʶ<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>ɫͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ɫ<EFBFBD>ͻҶ<EFBFBD>ͼ<EFBFBD><EFBFBD>
* v1.4 2021/06/18 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[90, 200]<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ[50, 200]<EFBFBD><EFBFBD>
* v1.5 2023/11/22 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>
* v1.5.1 2023//11/28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6>ж<EFBFBD><D0B6><EFBFBD>ֵ
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.5.1
2022-07-29 08:41:34 +00:00
* ====================================================
*/
#ifndef IMAGE_APPLY_COLOR_RECOGNITION_H
#define IMAGE_APPLY_COLOR_RECOGNITION_H
#include "ImageApply.h"
class GIMGPROC_LIBRARY_API CImageApplyColorRecognition : public CImageApply
{
public:
//ɫ<><C9AB>ʶ<EFBFBD><CAB6>ģʽ
enum ColorRecognitionMode
{
AllColor, //ȫɫģʽ ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB>Dz<EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>Ҷȡ<D2B6><C8A1>ڰ<EFBFBD>
Color_Gray, //<2F><>ɫ<EFBFBD>Ҷ<EFBFBD>ģʽ ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>Dz<EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>߻Ҷ<DFBB>
Color_Mono, //<2F><>ɫ<EFBFBD>ڰ<EFBFBD>ģʽ ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>Dz<EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ߺڰ<DFBA>
Gray_Mono //<2F>ҶȺڰ<C8BA>ģʽ ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ǻҶȻ<D2B6><C8BB>ߺڰ<DFBA>
};
//ɫ<><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum ColorType
{
Color, //<2F><>ɫ
Gray, //<2F>Ҷ<EFBFBD>
Mono //<2F>ڰ<EFBFBD>
};
public:
CImageApplyColorRecognition(ColorRecognitionMode mode = AllColor);
virtual ~CImageApplyColorRecognition(void);
virtual void apply(cv::Mat& pDib, int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
/// <summary>
/// <20><>ȡͼƬɫ<C6AC><C9AB><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD>void apply(cv::Mat&, int)<29>ӿ<EFBFBD>ʹ<EFBFBD><CAB9>
/// </summary>
/// <returns>ɫ<><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
ColorType getResult();
/// <summary>
/// <20><>ȡͼƬɫ<C6AC><C9AB><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD>void apply(std::vector<cv::Mat>&, int)<29>ӿ<EFBFBD>ʹ<EFBFBD><CAB9>
/// </summary>
/// <returns>ɫ<><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
std::vector<ColorType> getResults();
private:
bool isColor(const cv::Mat& image, double threshold = 30);
2022-07-29 08:41:34 +00:00
private:
ColorType m_result;
std::vector<ColorType> m_results;
ColorRecognitionMode m_mode;
};
#endif // !IMAGE_APPLY_CONCATENATION_H