qrtools 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +6 -0
- data/Manifest.txt +65 -0
- data/README.txt +75 -0
- data/Rakefile +49 -0
- data/bin/qrdecode +14 -0
- data/ext/qrtools/Makefile.in +65 -0
- data/ext/qrtools/bitstream.cpp +147 -0
- data/ext/qrtools/bitstream.h +48 -0
- data/ext/qrtools/codedata.cpp +506 -0
- data/ext/qrtools/codedata.h +95 -0
- data/ext/qrtools/container.cpp +288 -0
- data/ext/qrtools/container.h +175 -0
- data/ext/qrtools/decodeqr.h +286 -0
- data/ext/qrtools/ecidecoder.cpp +341 -0
- data/ext/qrtools/ecidecoder.h +110 -0
- data/ext/qrtools/extconf.rb +24 -0
- data/ext/qrtools/formatinfo.cpp +195 -0
- data/ext/qrtools/formatinfo.h +113 -0
- data/ext/qrtools/galois.cpp +593 -0
- data/ext/qrtools/galois.h +134 -0
- data/ext/qrtools/imagereader.cpp +1099 -0
- data/ext/qrtools/imagereader.h +127 -0
- data/ext/qrtools/libdecodeqr.cpp +195 -0
- data/ext/qrtools/libdecodeqr.dep +80 -0
- data/ext/qrtools/libdecodeqr.dsp +160 -0
- data/ext/qrtools/libdecodeqr.dsw +29 -0
- data/ext/qrtools/libdecodeqr.mak +245 -0
- data/ext/qrtools/qrerror.h +40 -0
- data/ext/qrtools/qrtools.c +17 -0
- data/ext/qrtools/qrtools.h +21 -0
- data/ext/qrtools/qrtools_decoder.c +123 -0
- data/ext/qrtools/qrtools_decoder.h +10 -0
- data/ext/qrtools/qrtools_encoder.c +63 -0
- data/ext/qrtools/qrtools_encoder.h +10 -0
- data/ext/qrtools/qrtools_header.c +51 -0
- data/ext/qrtools/qrtools_header.h +10 -0
- data/ext/qrtools/qrtools_image.c +80 -0
- data/ext/qrtools/qrtools_image.h +11 -0
- data/ext/qrtools/qrtools_qrcode.c +36 -0
- data/ext/qrtools/qrtools_qrcode.h +10 -0
- data/ext/qrtools/qrtools_ui_camera.c +58 -0
- data/ext/qrtools/qrtools_ui_camera.h +10 -0
- data/ext/qrtools/qrtools_ui_window.c +40 -0
- data/ext/qrtools/qrtools_ui_window.h +10 -0
- data/ext/qrtools/qrtypes.h +42 -0
- data/ext/qrtools/version.h +42 -0
- data/lib/qrtools.rb +11 -0
- data/lib/qrtools/decoder.rb +17 -0
- data/lib/qrtools/encoder.rb +14 -0
- data/lib/qrtools/image.rb +43 -0
- data/lib/qrtools/qrcode.rb +54 -0
- data/lib/qrtools/ui/camera.rb +28 -0
- data/lib/qrtools/ui/window.rb +16 -0
- data/lib/qrtools/version.rb +3 -0
- data/qrtools.gemspec +38 -0
- data/test/assets/01-1.jpg +0 -0
- data/test/helper.rb +17 -0
- data/test/test_decoder.rb +67 -0
- data/test/test_encoder.rb +35 -0
- data/test/test_header.rb +14 -0
- data/test/test_image.rb +19 -0
- data/test/test_qrcode.rb +78 -0
- data/test/test_qrdecode.rb +0 -0
- data/test/ui/test_camera.rb +43 -0
- data/test/ui/test_window.rb +34 -0
- metadata +138 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// imagereader.h --a part of libdecodeqr
|
|
4
|
+
//
|
|
5
|
+
// Copyright(C) 2007 NISHI Takao <zophos@koka-in.org>
|
|
6
|
+
// JMA (Japan Medical Association)
|
|
7
|
+
// NaCl (Network Applied Communication Laboratory Ltd.)
|
|
8
|
+
//
|
|
9
|
+
// This is free software with ABSOLUTELY NO WARRANTY.
|
|
10
|
+
// You can redistribute and/or modify it under the terms of LGPL.
|
|
11
|
+
//
|
|
12
|
+
// $Id: imagereader.h 36 2007-02-21 23:22:03Z zophos $
|
|
13
|
+
//
|
|
14
|
+
#ifndef __QR_IMAGE_READER__
|
|
15
|
+
#define __QR_IMAGE_READER__
|
|
16
|
+
|
|
17
|
+
#ifdef _DEBUG
|
|
18
|
+
#include <stdio.h>
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#include <cv.h>
|
|
22
|
+
#include <memory.h>
|
|
23
|
+
#include "qrerror.h"
|
|
24
|
+
#include "container.h"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/////////////////////////////////////////////////////////////////////////
|
|
28
|
+
//
|
|
29
|
+
// image processing parameters
|
|
30
|
+
//
|
|
31
|
+
#define DEFAULT_ADAPTIVE_TH_SIZE 25
|
|
32
|
+
#define DEFAULT_ADAPTIVE_TH_DELTA 10
|
|
33
|
+
#define MIN_AREA 49
|
|
34
|
+
#define MIN_AREA_RATIO .65
|
|
35
|
+
#define MIN_FERET_RATIO .7
|
|
36
|
+
#define FIND_CODE_AREA_POLY_APPROX_TH 50
|
|
37
|
+
#define POSTERIZED_TH_LOW 64
|
|
38
|
+
#define POSTERIZED_TH_HI 96
|
|
39
|
+
#define POSTERIZED_TH_STEP 8
|
|
40
|
+
|
|
41
|
+
namespace Qr{
|
|
42
|
+
class ImageReader{
|
|
43
|
+
public:
|
|
44
|
+
Qr *qr;
|
|
45
|
+
short status;
|
|
46
|
+
|
|
47
|
+
private:
|
|
48
|
+
IplImage *_img_src_internal;
|
|
49
|
+
IplImage *_img_src;
|
|
50
|
+
IplImage *_img_transformed;
|
|
51
|
+
IplImage *_img_binarized;
|
|
52
|
+
IplImage *_img_tmp_1c;
|
|
53
|
+
CvMemStorage *_stor;
|
|
54
|
+
CvMemStorage *_stor_tmp;
|
|
55
|
+
CvSeq *_seq_finder_pattern;
|
|
56
|
+
CvSeq *_seq_code_area_contour;
|
|
57
|
+
CvPoint _coderegion_vertexes[4];
|
|
58
|
+
CvBox2D _finderpattern_boxes[3];
|
|
59
|
+
|
|
60
|
+
public:
|
|
61
|
+
ImageReader();
|
|
62
|
+
ImageReader(int width,int height,
|
|
63
|
+
int depth=IPL_DEPTH_8U,
|
|
64
|
+
int channel=3);
|
|
65
|
+
~ImageReader();
|
|
66
|
+
|
|
67
|
+
IplImage *set_image(IplImage *src);
|
|
68
|
+
uchar *set_image(uchar *buffer,int size);
|
|
69
|
+
IplImage *set_image(int width,int height,
|
|
70
|
+
int depth,int channel);
|
|
71
|
+
void release_image();
|
|
72
|
+
|
|
73
|
+
IplImage *src_buffer();
|
|
74
|
+
IplImage *transformed_buffer();
|
|
75
|
+
IplImage *binarized_buffer();
|
|
76
|
+
IplImage *tmp_buffer();
|
|
77
|
+
CvPoint *coderegion_vertexes();
|
|
78
|
+
CvBox2D *finderpattern_boxes();
|
|
79
|
+
|
|
80
|
+
Qr *decode(int adaptive_th_size=
|
|
81
|
+
DEFAULT_ADAPTIVE_TH_SIZE,
|
|
82
|
+
int adaptive_th_delta=
|
|
83
|
+
DEFAULT_ADAPTIVE_TH_DELTA);
|
|
84
|
+
Qr *decode(IplImage *src,
|
|
85
|
+
int adaptive_th_size=
|
|
86
|
+
DEFAULT_ADAPTIVE_TH_SIZE,
|
|
87
|
+
int adaptive_th_delta=
|
|
88
|
+
DEFAULT_ADAPTIVE_TH_DELTA);
|
|
89
|
+
|
|
90
|
+
private:
|
|
91
|
+
void _init();
|
|
92
|
+
void _alloc_image(int width,int height,
|
|
93
|
+
int depth,int channel);
|
|
94
|
+
|
|
95
|
+
Qr *_decode(int adaptive_th_size,int adaptive_th_delta);
|
|
96
|
+
|
|
97
|
+
CvSeq *_find_finder_pattern();
|
|
98
|
+
CvSeq *_find_code_area_contour(double th);
|
|
99
|
+
CvRect _transform_image();
|
|
100
|
+
void _create_posterized_image(int block_size,
|
|
101
|
+
double delta,
|
|
102
|
+
int low_th,
|
|
103
|
+
int hi_th);
|
|
104
|
+
IplImage *_get_code_matrix();
|
|
105
|
+
int _get_format_info(IplImage *src,int pos=0);
|
|
106
|
+
IplImage *_get_function_patterns();
|
|
107
|
+
void _unmask_code_matrix(IplImage *src,
|
|
108
|
+
IplImage *function_patterns);
|
|
109
|
+
int _read_code_word(IplImage *src,IplImage *mask);
|
|
110
|
+
|
|
111
|
+
double _get_cell_size();
|
|
112
|
+
IplImage *_get_mask_pattern();
|
|
113
|
+
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
static int seq_cmp_by_clockwise(const void *_a,
|
|
117
|
+
const void *_b,
|
|
118
|
+
void *_cog);
|
|
119
|
+
|
|
120
|
+
void apaptive_white_leveling(const CvArr* src,CvArr* dst,
|
|
121
|
+
double middle_value,int adaptive_method,
|
|
122
|
+
int threshold_type,int block_size,
|
|
123
|
+
double param1);
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#endif
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// libdecodeqr.cpp --a part of libdecodeqr
|
|
4
|
+
//
|
|
5
|
+
// Copyright(C) 2007 NISHI Takao <zophos@koka-in.org>
|
|
6
|
+
// JMA (Japan Medical Association)
|
|
7
|
+
// NaCl (Network Applied Communication Laboratory Ltd.)
|
|
8
|
+
//
|
|
9
|
+
// This is free software with ABSOLUTELY NO WARRANTY.
|
|
10
|
+
// You can redistribute and/or modify it under the terms of LGPL.
|
|
11
|
+
//
|
|
12
|
+
// $Id: libdecodeqr.cpp 36 2007-02-21 23:22:03Z zophos $
|
|
13
|
+
//
|
|
14
|
+
#include "imagereader.h"
|
|
15
|
+
#include "qrtypes.h"
|
|
16
|
+
#include "version.h"
|
|
17
|
+
|
|
18
|
+
extern "C" {
|
|
19
|
+
|
|
20
|
+
QrDecoderHandle qr_decoder_open()
|
|
21
|
+
{
|
|
22
|
+
Qr::ImageReader *imagereader=new Qr::ImageReader();
|
|
23
|
+
return((QrDecoderHandle)imagereader);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
QrDecoderHandle qr_decoder_open_with_image_size(int width,int height,
|
|
27
|
+
int depth,int channel)
|
|
28
|
+
{
|
|
29
|
+
Qr::ImageReader *imagereader=new Qr::ImageReader(width,height,
|
|
30
|
+
depth,channel);
|
|
31
|
+
return((QrDecoderHandle)imagereader);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void qr_decoder_close(QrDecoderHandle decoder)
|
|
35
|
+
{
|
|
36
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
37
|
+
delete imagereader;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
short qr_decoder_get_status(QrDecoderHandle decoder)
|
|
41
|
+
{
|
|
42
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
43
|
+
return(imagereader->status);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
int qr_decoder_is_busy(QrDecoderHandle decoder)
|
|
47
|
+
{
|
|
48
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
49
|
+
return(imagereader->status&QR_IMAGEREADER_WORKING?1:0);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
QrDecoderHandle qr_decoder_set_image_size(QrDecoderHandle decoder,
|
|
54
|
+
int width,int height,
|
|
55
|
+
int depth,int channel)
|
|
56
|
+
{
|
|
57
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
58
|
+
imagereader->set_image(width,height,depth,channel);
|
|
59
|
+
|
|
60
|
+
return((QrDecoderHandle)imagereader);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
IplImage *qr_decoder_get_image_buffer(QrDecoderHandle decoder)
|
|
65
|
+
{
|
|
66
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
67
|
+
return(imagereader->src_buffer());
|
|
68
|
+
}
|
|
69
|
+
IplImage *qr_decoder_get_transformed_image_buffer(QrDecoderHandle decoder)
|
|
70
|
+
{
|
|
71
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
72
|
+
return(imagereader->transformed_buffer());
|
|
73
|
+
}
|
|
74
|
+
IplImage *qr_decoder_get_binarized_image_buffer(QrDecoderHandle decoder)
|
|
75
|
+
{
|
|
76
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
77
|
+
return(imagereader->binarized_buffer());
|
|
78
|
+
}
|
|
79
|
+
IplImage *qr_decoder_get_tmp_image_buffer(QrDecoderHandle decoder)
|
|
80
|
+
{
|
|
81
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
82
|
+
return(imagereader->tmp_buffer());
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
QrDecoderHandle qr_decoder_set_image_buffer(QrDecoderHandle decoder,
|
|
86
|
+
IplImage *src)
|
|
87
|
+
{
|
|
88
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
89
|
+
imagereader->set_image(src);
|
|
90
|
+
|
|
91
|
+
return((QrDecoderHandle)imagereader);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
short qr_decoder_decode(QrDecoderHandle decoder,
|
|
95
|
+
int adaptive_th_size,
|
|
96
|
+
int adaptive_th_delta)
|
|
97
|
+
{
|
|
98
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
99
|
+
imagereader->decode(adaptive_th_size,adaptive_th_delta);
|
|
100
|
+
return(imagereader->status);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
short qr_decoder_decode_image(QrDecoderHandle decoder,
|
|
104
|
+
IplImage *src,
|
|
105
|
+
int adaptive_th_size,
|
|
106
|
+
int adaptive_th_delta)
|
|
107
|
+
{
|
|
108
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
109
|
+
imagereader->decode(src,adaptive_th_size,adaptive_th_delta);
|
|
110
|
+
return(imagereader->status);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
int qr_decoder_get_header(QrDecoderHandle decoder,
|
|
114
|
+
QrCodeHeader *header)
|
|
115
|
+
{
|
|
116
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
117
|
+
if(!(imagereader->status&QR_IMAGEREADER_DECODED))
|
|
118
|
+
return(0);
|
|
119
|
+
|
|
120
|
+
header->model=imagereader->qr->model;
|
|
121
|
+
header->version=imagereader->qr->version;
|
|
122
|
+
header->level=imagereader->qr->formatinfo->level;
|
|
123
|
+
//header->mode=0;
|
|
124
|
+
//header->eci_mode=0;
|
|
125
|
+
header->charactor_size=imagereader->qr->codedata->length;
|
|
126
|
+
header->byte_size=imagereader->qr->codedata->byte_length;
|
|
127
|
+
|
|
128
|
+
return(1);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
int qr_decoder_get_body(QrDecoderHandle decoder,
|
|
132
|
+
unsigned char *buf,
|
|
133
|
+
int buf_size)
|
|
134
|
+
{
|
|
135
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
136
|
+
if(!(imagereader->status&QR_IMAGEREADER_DECODED))
|
|
137
|
+
return(0);
|
|
138
|
+
|
|
139
|
+
memset(buf,0,buf_size);
|
|
140
|
+
int size=imagereader->qr->codedata->byte_length;
|
|
141
|
+
if(size>buf_size)
|
|
142
|
+
size=buf_size;
|
|
143
|
+
|
|
144
|
+
memcpy(buf,imagereader->qr->codedata->raw_data(),size);
|
|
145
|
+
|
|
146
|
+
return(size);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
CvPoint *qr_decoder_get_coderegion_vertexes(QrDecoderHandle decoder)
|
|
150
|
+
{
|
|
151
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
152
|
+
return(imagereader->coderegion_vertexes());
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
CvBox2D *qr_decoder_get_finderpattern_boxes(QrDecoderHandle decoder)
|
|
156
|
+
{
|
|
157
|
+
Qr::ImageReader *imagereader=(Qr::ImageReader *)decoder;
|
|
158
|
+
return(imagereader->finderpattern_boxes());
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
char *qr_decoder_version()
|
|
163
|
+
{
|
|
164
|
+
return(LIBDECODEQR_VERSION);
|
|
165
|
+
}
|
|
166
|
+
char *qr_decoder_version_description()
|
|
167
|
+
{
|
|
168
|
+
return(LIBDECODEQR_VERSION_DESCRIPTION);
|
|
169
|
+
}
|
|
170
|
+
char *qr_decoder_version_product()
|
|
171
|
+
{
|
|
172
|
+
return(LIBDECODEQR_PRODUCTNAME);
|
|
173
|
+
}
|
|
174
|
+
int qr_decoder_version_major()
|
|
175
|
+
{
|
|
176
|
+
return(LIBDECODEQR_VERSION_MAJOR);
|
|
177
|
+
}
|
|
178
|
+
int qr_decoder_version_minor()
|
|
179
|
+
{
|
|
180
|
+
return(LIBDECODEQR_VERSION_MINOR);
|
|
181
|
+
}
|
|
182
|
+
int qr_decoder_version_teeny()
|
|
183
|
+
{
|
|
184
|
+
return(LIBDECODEQR_VERSION_TEENY);
|
|
185
|
+
}
|
|
186
|
+
char *qr_decoder_version_suffix()
|
|
187
|
+
{
|
|
188
|
+
return(LIBDECODEQR_VERSION_SUFFIX);
|
|
189
|
+
}
|
|
190
|
+
char *qr_decoder_version_revision()
|
|
191
|
+
{
|
|
192
|
+
return(LIBDECODEQR_VERSION_REVISION);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Microsoft Developer Studio Generated Dependency File, included by libdecodeqr.mak
|
|
2
|
+
|
|
3
|
+
.\bitstream.cpp : \
|
|
4
|
+
".\bitstream.h"\
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.\codedata.cpp : \
|
|
8
|
+
".\bitstream.h"\
|
|
9
|
+
".\codedata.h"\
|
|
10
|
+
".\ecidecoder.h"\
|
|
11
|
+
".\galois.h"\
|
|
12
|
+
".\qrerror.h"\
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
.\container.cpp : \
|
|
16
|
+
".\bitstream.h"\
|
|
17
|
+
".\codedata.h"\
|
|
18
|
+
".\container.h"\
|
|
19
|
+
".\ecidecoder.h"\
|
|
20
|
+
".\formatinfo.h"\
|
|
21
|
+
".\galois.h"\
|
|
22
|
+
".\qrerror.h"\
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
.\ecidecoder.cpp : \
|
|
26
|
+
".\bitstream.h"\
|
|
27
|
+
".\ecidecoder.h"\
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
.\formatinfo.cpp : \
|
|
31
|
+
".\formatinfo.h"\
|
|
32
|
+
".\galois.h"\
|
|
33
|
+
".\qrerror.h"\
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
.\galois.cpp : \
|
|
37
|
+
".\galois.h"\
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
.\imagereader.cpp : \
|
|
41
|
+
".\bitstream.h"\
|
|
42
|
+
".\codedata.h"\
|
|
43
|
+
".\container.h"\
|
|
44
|
+
".\ecidecoder.h"\
|
|
45
|
+
".\formatinfo.h"\
|
|
46
|
+
".\galois.h"\
|
|
47
|
+
".\imagereader.h"\
|
|
48
|
+
".\qrerror.h"\
|
|
49
|
+
{$(INCLUDE)}"cv.h"\
|
|
50
|
+
{$(INCLUDE)}"cvcompat.h"\
|
|
51
|
+
{$(INCLUDE)}"cvtypes.h"\
|
|
52
|
+
{$(INCLUDE)}"cxcore.h"\
|
|
53
|
+
{$(INCLUDE)}"cxerror.h"\
|
|
54
|
+
{$(INCLUDE)}"cxtypes.h"\
|
|
55
|
+
{$(INCLUDE)}"emmintrin.h"\
|
|
56
|
+
{$(INCLUDE)}"mmintrin.h"\
|
|
57
|
+
{$(INCLUDE)}"xmmintrin.h"\
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
.\libdecodeqr.cpp : \
|
|
61
|
+
".\bitstream.h"\
|
|
62
|
+
".\codedata.h"\
|
|
63
|
+
".\container.h"\
|
|
64
|
+
".\ecidecoder.h"\
|
|
65
|
+
".\formatinfo.h"\
|
|
66
|
+
".\galois.h"\
|
|
67
|
+
".\imagereader.h"\
|
|
68
|
+
".\qrerror.h"\
|
|
69
|
+
".\qrtypes.h"\
|
|
70
|
+
".\version.h"\
|
|
71
|
+
{$(INCLUDE)}"cv.h"\
|
|
72
|
+
{$(INCLUDE)}"cvcompat.h"\
|
|
73
|
+
{$(INCLUDE)}"cvtypes.h"\
|
|
74
|
+
{$(INCLUDE)}"cxcore.h"\
|
|
75
|
+
{$(INCLUDE)}"cxerror.h"\
|
|
76
|
+
{$(INCLUDE)}"cxtypes.h"\
|
|
77
|
+
{$(INCLUDE)}"emmintrin.h"\
|
|
78
|
+
{$(INCLUDE)}"mmintrin.h"\
|
|
79
|
+
{$(INCLUDE)}"xmmintrin.h"\
|
|
80
|
+
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Microsoft Developer Studio Project File - Name="libdecodeqr" - Package Owner=<4>
|
|
2
|
+
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
3
|
+
# ** �ҏW���Ȃ��ł������� **
|
|
4
|
+
|
|
5
|
+
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
|
6
|
+
|
|
7
|
+
CFG=libdecodeqr - Win32 Debug
|
|
8
|
+
!MESSAGE ����͗L����Ҳ�̧�قł͂���܂���B ������ۼު�Ă�����ނ��邽�߂ɂ� NMAKE ���g�p���Ă��������B
|
|
9
|
+
!MESSAGE [Ҳ�̧�ق̴���߰�] ����ނ��g�p���Ď��s���Ă�������
|
|
10
|
+
!MESSAGE
|
|
11
|
+
!MESSAGE NMAKE /f "libdecodeqr.mak".
|
|
12
|
+
!MESSAGE
|
|
13
|
+
!MESSAGE NMAKE �̎��s���ɍ\�����w��ł��܂�
|
|
14
|
+
!MESSAGE ����� ײݏ��ϸۂ̐ݒ���`���܂��B��:
|
|
15
|
+
!MESSAGE
|
|
16
|
+
!MESSAGE NMAKE /f "libdecodeqr.mak" CFG="libdecodeqr - Win32 Debug"
|
|
17
|
+
!MESSAGE
|
|
18
|
+
!MESSAGE �I���\������� Ӱ��:
|
|
19
|
+
!MESSAGE
|
|
20
|
+
!MESSAGE "libdecodeqr - Win32 Release" ("Win32 (x86) Static Library" �p)
|
|
21
|
+
!MESSAGE "libdecodeqr - Win32 Debug" ("Win32 (x86) Static Library" �p)
|
|
22
|
+
!MESSAGE
|
|
23
|
+
|
|
24
|
+
# Begin Project
|
|
25
|
+
# PROP AllowPerConfigDependencies 0
|
|
26
|
+
# PROP Scc_ProjName ""
|
|
27
|
+
# PROP Scc_LocalPath ""
|
|
28
|
+
CPP=cl.exe
|
|
29
|
+
RSC=rc.exe
|
|
30
|
+
|
|
31
|
+
!IF "$(CFG)" == "libdecodeqr - Win32 Release"
|
|
32
|
+
|
|
33
|
+
# PROP BASE Use_MFC 0
|
|
34
|
+
# PROP BASE Use_Debug_Libraries 0
|
|
35
|
+
# PROP BASE Output_Dir "Release"
|
|
36
|
+
# PROP BASE Intermediate_Dir "Release"
|
|
37
|
+
# PROP BASE Target_Dir ""
|
|
38
|
+
# PROP Use_MFC 0
|
|
39
|
+
# PROP Use_Debug_Libraries 0
|
|
40
|
+
# PROP Output_Dir "Release"
|
|
41
|
+
# PROP Intermediate_Dir "Release"
|
|
42
|
+
# PROP Target_Dir ""
|
|
43
|
+
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
|
44
|
+
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
|
45
|
+
# ADD BASE RSC /l 0x411 /d "NDEBUG"
|
|
46
|
+
# ADD RSC /l 0x411 /d "NDEBUG"
|
|
47
|
+
BSC32=bscmake.exe
|
|
48
|
+
# ADD BASE BSC32 /nologo
|
|
49
|
+
# ADD BSC32 /nologo
|
|
50
|
+
LIB32=link.exe -lib
|
|
51
|
+
# ADD BASE LIB32 /nologo
|
|
52
|
+
# ADD LIB32 /nologo
|
|
53
|
+
|
|
54
|
+
!ELSEIF "$(CFG)" == "libdecodeqr - Win32 Debug"
|
|
55
|
+
|
|
56
|
+
# PROP BASE Use_MFC 0
|
|
57
|
+
# PROP BASE Use_Debug_Libraries 1
|
|
58
|
+
# PROP BASE Output_Dir "Debug"
|
|
59
|
+
# PROP BASE Intermediate_Dir "Debug"
|
|
60
|
+
# PROP BASE Target_Dir ""
|
|
61
|
+
# PROP Use_MFC 0
|
|
62
|
+
# PROP Use_Debug_Libraries 1
|
|
63
|
+
# PROP Output_Dir "Debug"
|
|
64
|
+
# PROP Intermediate_Dir "Debug"
|
|
65
|
+
# PROP Target_Dir ""
|
|
66
|
+
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
|
67
|
+
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
|
68
|
+
# ADD BASE RSC /l 0x411 /d "_DEBUG"
|
|
69
|
+
# ADD RSC /l 0x411 /d "_DEBUG"
|
|
70
|
+
BSC32=bscmake.exe
|
|
71
|
+
# ADD BASE BSC32 /nologo
|
|
72
|
+
# ADD BSC32 /nologo
|
|
73
|
+
LIB32=link.exe -lib
|
|
74
|
+
# ADD BASE LIB32 /nologo
|
|
75
|
+
# ADD LIB32 /nologo
|
|
76
|
+
|
|
77
|
+
!ENDIF
|
|
78
|
+
|
|
79
|
+
# Begin Target
|
|
80
|
+
|
|
81
|
+
# Name "libdecodeqr - Win32 Release"
|
|
82
|
+
# Name "libdecodeqr - Win32 Debug"
|
|
83
|
+
# Begin Group "Source Files"
|
|
84
|
+
|
|
85
|
+
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
86
|
+
# Begin Source File
|
|
87
|
+
|
|
88
|
+
SOURCE=.\bitstream.cpp
|
|
89
|
+
# End Source File
|
|
90
|
+
# Begin Source File
|
|
91
|
+
|
|
92
|
+
SOURCE=.\codedata.cpp
|
|
93
|
+
# End Source File
|
|
94
|
+
# Begin Source File
|
|
95
|
+
|
|
96
|
+
SOURCE=.\container.cpp
|
|
97
|
+
# End Source File
|
|
98
|
+
# Begin Source File
|
|
99
|
+
|
|
100
|
+
SOURCE=.\ecidecoder.cpp
|
|
101
|
+
# End Source File
|
|
102
|
+
# Begin Source File
|
|
103
|
+
|
|
104
|
+
SOURCE=.\formatinfo.cpp
|
|
105
|
+
# End Source File
|
|
106
|
+
# Begin Source File
|
|
107
|
+
|
|
108
|
+
SOURCE=.\galois.cpp
|
|
109
|
+
# End Source File
|
|
110
|
+
# Begin Source File
|
|
111
|
+
|
|
112
|
+
SOURCE=.\imagereader.cpp
|
|
113
|
+
# End Source File
|
|
114
|
+
# Begin Source File
|
|
115
|
+
|
|
116
|
+
SOURCE=.\libdecodeqr.cpp
|
|
117
|
+
# End Source File
|
|
118
|
+
# End Group
|
|
119
|
+
# Begin Group "Header Files"
|
|
120
|
+
|
|
121
|
+
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
122
|
+
# Begin Source File
|
|
123
|
+
|
|
124
|
+
SOURCE=.\bitstream.h
|
|
125
|
+
# End Source File
|
|
126
|
+
# Begin Source File
|
|
127
|
+
|
|
128
|
+
SOURCE=.\codedata.h
|
|
129
|
+
# End Source File
|
|
130
|
+
# Begin Source File
|
|
131
|
+
|
|
132
|
+
SOURCE=.\container.h
|
|
133
|
+
# End Source File
|
|
134
|
+
# Begin Source File
|
|
135
|
+
|
|
136
|
+
SOURCE=.\ecidecoder.h
|
|
137
|
+
# End Source File
|
|
138
|
+
# Begin Source File
|
|
139
|
+
|
|
140
|
+
SOURCE=.\formatinfo.h
|
|
141
|
+
# End Source File
|
|
142
|
+
# Begin Source File
|
|
143
|
+
|
|
144
|
+
SOURCE=.\galois.h
|
|
145
|
+
# End Source File
|
|
146
|
+
# Begin Source File
|
|
147
|
+
|
|
148
|
+
SOURCE=.\imagereader.h
|
|
149
|
+
# End Source File
|
|
150
|
+
# Begin Source File
|
|
151
|
+
|
|
152
|
+
SOURCE=.\qrerror.h
|
|
153
|
+
# End Source File
|
|
154
|
+
# Begin Source File
|
|
155
|
+
|
|
156
|
+
SOURCE=.\qrtypes.h
|
|
157
|
+
# End Source File
|
|
158
|
+
# End Group
|
|
159
|
+
# End Target
|
|
160
|
+
# End Project
|