资源简介
QR二维码解码C++源代码,不含DLL中间件,全套源程序,原代码全中文注释。
可以选择输入8位或24位BMP格式QR码图像,输出(包括版本号和纠错等级的)QR码译码信息。
支持QR码中文国家标准,是研究QR码译码技术的入门样本。
VS2010编译环境调试通过(工程名:QRcodeDecoder.sln),支持重新编译,直接可用。
编译后,可执行程序存放在..\release\文件夹下,程序名:QRcodeDecoder.exe
代码片段和文件信息
// AlignmentPattern.cpp: implementation of the AlignmentPattern class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “QRcodeDecoder.h“
#include “AlignmentPattern.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
AlignmentPattern::AlignmentPattern()
{
}
AlignmentPattern::~AlignmentPattern()
{
}
//校正图形检测
void AlignmentPattern::findAlignmentPattern(BYTE ** mybitmap int mynWidth int mynHeight FinderPattern * finderPattern int myDECIMAL_POINT)
{
DECIMAL_POINT=myDECIMAL_POINT;
bitmap=mybitmap;
nWidth=mynWidth;
nHeight=mynHeight;
m_finderPattern=finderPattern;
getLogicalCenter(m_finderPattern);
logicalDistance = logicalCenters[1][0].x - logicalCenters[0][0].x;
//With it converts in order to handle in the same way
getCenter();
//return new AlignmentPattern(centers logicalDistance);
}
//get logical center coordinates of each alignment patterns
void AlignmentPattern::getLogicalCenter(FinderPattern * finderPattern)
{
int i ;
//get logical center coordinates of each alignment patterns
int version = finderPattern->m_version;
int logicalSeedsCnt;
logicalSeedsCnt=QR_VersonInfo[version].ncAlignPoint+1;
int * logicalSeeds=new int[logicalSeedsCnt];
logicalSeeds[0]=6;
for(i=1;i logicalSeeds[i]=QR_VersonInfo[version].nAlignPoint[i-1];
logicalCenters = new Point *[logicalSeedsCnt];
for(i=0;i logicalCenters[i]=new Point[logicalSeedsCnt];
//Point[][] logicalCenters = new Point[logicalSeeds.length][logicalSeeds.length];
//create real relative coordinates
for (int col = 0; col < logicalSeedsCnt; col++)
{
for (int row = 0; row < logicalSeedsCnt; row++)
{
logicalCenters[row][col] = Point(logicalSeeds[row] logicalSeeds[col]);
}
}
logicalCentersCnt=logicalSeedsCnt;
}
void AlignmentPattern::getCenter()
{
int moduleSize = m_finderPattern->m_moduleSize[UL];
int * angle=m_finderPattern->m_sincos;
Axis axis = Axis(angle moduleSize DECIMAL_POINT);
m_centersCnt = logicalCentersCnt;
m_centers = new Point *[m_centersCnt];
for(int i=0;i m_centers[i]=new Point[m_centersCnt];
//Point[][] centers = new Point[m_centersCnt][m_centersCnt];
axis.setOrigin(m_finderPattern->m_center[UL]);
m_centers[0][0] = axis.translate(3 3);
axis.setOrigin(m_finderPattern->m_center[UR]);
m_centers[m_centersCnt - 1][0] = axis.translate(-3 3);
axis.setOrigin(m_finderPattern->m_center[DL]);
m_centers[0][m_centersCnt - 1] = axis.translate(3 -3);
Point tmpPoint=m_centers[0][0];
for (int y = 0; y < m_centersCnt; y++)
{
for (int x = 0; x < m_centersCnt; x++)
{
if ((x==0 &&
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16402 2016-08-01 00:08 ContentDecoder.cpp
文件 2391 2016-07-28 00:42 ContentDecoder.h
文件 24137 2016-08-01 00:08 FinderPattern.cpp
文件 1684 2016-07-30 00:57 FinderPattern.h
文件 3292 2008-04-23 22:02 Galois.cpp
文件 950 2008-04-22 23:35 Galois.h
文件 3009 2016-07-28 00:09 Line.cpp
文件 1110 2008-05-03 08:47 Line.h
文件 1206 2016-07-28 00:09 Point.cpp
文件 788 2008-05-02 20:39 Point.h
文件 38864 2016-07-30 13:24 QRcodeDecoder.aps
文件 2197 2016-07-26 01:20 QRcodeDecoder.clw
文件 2161 2008-03-16 11:33 QRcodeDecoder.cpp
文件 5596 2016-07-26 11:55 QRcodeDecoder.dsp
文件 551 2008-03-16 11:33 QRcodeDecoder.dsw
文件 1401 2008-03-16 11:33 QRcodeDecoder.h
文件 189440 2016-07-26 01:20 QRcodeDecoder.ncb
文件 54784 2016-07-26 01:20 QRcodeDecoder.opt
文件 3095 2016-07-26 01:18 QRcodeDecoder.plg
文件 5600 2016-07-30 13:24 QRcodeDecoder.rc
文件 122966016 2018-05-14 17:54 QRcodeDecoder.sdf
文件 892 2016-08-01 00:08 QRcodeDecoder.sln
..A..H. 26112 2018-05-14 17:54 QRcodeDecoder.suo
文件 9052 2016-07-30 13:24 QRcodeDecoder.vcxproj
文件 3860 2016-07-26 01:27 QRcodeDecoder.vcxproj.filters
文件 143 2016-07-26 01:27 QRcodeDecoder.vcxproj.user
文件 8436 2016-08-01 00:08 QRcodeDecoderDlg.cpp
文件 1992 2016-07-31 23:46 QRcodeDecoderDlg.h
文件 17034 2016-08-01 00:08 QRcodeImage.cpp
文件 1703 2016-08-01 00:08 QRcodeImage.h
............此处省略29个文件信息
相关资源
- QR码二维码编码C++源代码VS2010编译环境
- zxing识别二维码的C++版本,提供OpenC
- 安卓系统二维码扫描
- c++二维码定位和识别+zbar+opencv+ubuntu
- QR码生成C++源码
- VC生成二维码sample
- datamatrix解码c源代码
- zxing库c++)
- 二维码RS数据纠错算法
- c语言实现二维码生成
- 二维码驱动C语言
- ZBAR官方开源二维码识别库
- DMDECODER二维码识别MFC工程
- Qrcode二维码生成C++
- C++Builder XE 10.3(二维码).rar
- Zxing cpp二维码识别源码
- c++二维码识别opencv+zbar
- 51单片机生成二维码(QR Code)+12864并
- iOS条形码二维码识别项目源码
- esp32 qr(QRCode.ino)
- 仿微信的扫描二维码登录功能 原理源
- c++ 二维码
- C++ 二维码识别
- 识别条形码及二维码
- qt 解析二维码图片中的文本
- 二维码生成
- opencv+zbar识别二维码
- 二维码扫描+QT
- qrcode 解析一维码和二维码
- c++ 二维码编解码
评论
共有 条评论