mirror of http://192.168.1.51:8099/lmh188/twain3
85 lines
1.9 KiB
C
85 lines
1.9 KiB
C
|
#ifndef IMAGE_APPLY_BAR_CODE_RECOGNITION_H
|
||
|
#define IMAGE_APPLY_BAR_CODE_RECOGNITION_H
|
||
|
|
||
|
#include "ImageApply.h"
|
||
|
|
||
|
class CImageApplyBarCodeRecognition : public CImageApply
|
||
|
{
|
||
|
public:
|
||
|
enum class RecognizeMode
|
||
|
{
|
||
|
Single = 0,
|
||
|
Multi
|
||
|
};
|
||
|
|
||
|
enum class Direction
|
||
|
{
|
||
|
Horizontal,
|
||
|
Vertical
|
||
|
};
|
||
|
|
||
|
enum BarCodeType
|
||
|
{
|
||
|
ThreeOfNine = 0,
|
||
|
ThreeOfFiveInterleaved = 1,
|
||
|
ThreeOfFiveNonInterleaved = 2,
|
||
|
Code93 = 3,
|
||
|
Code128 = 4,
|
||
|
Ucc128 = 5,
|
||
|
CodaBar = 6,
|
||
|
Upca = 7,
|
||
|
Upce = 8,
|
||
|
Ean8 = 9,
|
||
|
Ean13 = 10,
|
||
|
Postnet = 11,
|
||
|
Pdf417 = 12,
|
||
|
TwoOfFiveIndustrial = 13,
|
||
|
TwoOfFiveMatrix = 14,
|
||
|
TwoOfFiveDatalogic = 15,
|
||
|
TwoOfFiveIata = 16,
|
||
|
ThreeOfNineFullAscii = 17,
|
||
|
CodaBarWithStartStop = 18,
|
||
|
MaxiCode = 19,
|
||
|
QrCode = 20
|
||
|
};
|
||
|
|
||
|
typedef struct BarCode_Info
|
||
|
{
|
||
|
int barCodeType;
|
||
|
int barCodeLength;
|
||
|
std::string barCodeText;
|
||
|
int barCodeX;
|
||
|
int barCodeY;
|
||
|
int barCodeRotation;
|
||
|
int barCdeConfidence;
|
||
|
}BarCodeInfo;
|
||
|
|
||
|
public:
|
||
|
CImageApplyBarCodeRecognition();
|
||
|
|
||
|
CImageApplyBarCodeRecognition(RecognizeMode mode, Direction dir);
|
||
|
|
||
|
virtual ~CImageApplyBarCodeRecognition(void);
|
||
|
|
||
|
virtual void apply(cv::Mat& pDib, int side);
|
||
|
|
||
|
inline BarCodeInfo result() { return m_result; }
|
||
|
|
||
|
inline std::vector<BarCodeInfo> results() { return m_vector_result; }
|
||
|
|
||
|
private:
|
||
|
int recognize_ZXing(const cv::Mat& image, BarCodeInfo& result);
|
||
|
int recognize_Zbar(const cv::Mat& image, BarCodeInfo& result);
|
||
|
void decode(cv::Mat& image, BarCodeInfo& result);
|
||
|
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide) {}
|
||
|
private:
|
||
|
RecognizeMode m_mode;
|
||
|
Direction m_direction;
|
||
|
|
||
|
BarCodeInfo m_result;
|
||
|
std::vector<BarCodeInfo> m_vector_result;
|
||
|
};
|
||
|
|
||
|
#endif // IMAGE_APPLY_BAR_CODE_RECOGNITION_H
|
||
|
|