CN109064401A - 一种超长购物清单的拼接方法 - Google Patents
一种超长购物清单的拼接方法 Download PDFInfo
- Publication number
- CN109064401A CN109064401A CN201810832815.4A CN201810832815A CN109064401A CN 109064401 A CN109064401 A CN 109064401A CN 201810832815 A CN201810832815 A CN 201810832815A CN 109064401 A CN109064401 A CN 109064401A
- Authority
- CN
- China
- Prior art keywords
- line segment
- length
- line
- photo
- inventory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000000605 extraction Methods 0.000 claims abstract description 16
- 239000000284 extract Substances 0.000 claims abstract description 9
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种超长购物清单的拼接方法,包括:拍摄多张清单照片;提取第一张清单照片的N个特征点;将N个特征点两两连线,得到N*(N‑1)/2条线段;将N*(N‑1)/2条线段按照线段长度进行排序,得到线段集合Un;提取第二张清单照片的M个特征点;将M个特征点两两连线,得到M*(M‑1)/2条线段;将M*(M‑1)/2条线段按照线段长度进行排序,得到线段集合Um;将第一张清单照片的集合Un内线段分别与第二张清单照片的集合Um内线段进行比较,提取集合Un内线段与集合Um内线段的相同端点;根据提取的相同端点,采用AKAZE算法进行拼接;本发明通过一定算法过滤不一致特征点,从而达到正确拼接的目的。
Description
技术领域
本发明涉及图片处理技术领域,具体涉及一种超长购物清单的拼接方法。
背景技术
为了获取用户的购物趋势,自己公司产品的地域、年龄等差异下的销售情况,需要获取用户的购买信息。以前一般都是通过超市销售系统直接获取信息,现在可以通过用户提供相关信息而获得更多更准确的信息。用户在提供信息时,都是用手机直接拍摄购物清单上传到系统,然后由系统分析,从而提取信息。由于部分清单较长,不能一次性拍摄完成,因此通过手机移动,完成整个清单的拍照。在手机移动过程中,将间隔一定时间进行一次拍照,二次拍摄的照片会有部分内容重叠。根据重叠部分内容,实现照片拼接。现有技术采用经典的AKAZE算法直接进行拼接,但是由于购物清单是黑字白背景样式,导致拼接对象的2张照片获取到的Feature(特征)并不完全一致,从而导致拼接错误。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足提供一种超长购物清单的拼接方法,本超长购物清单的拼接方法通过一定算法过滤不一致特征点,从而达到正确拼接的目的。
为实现上述技术目的,本发明采取的技术方案为:
一种超长购物清单的拼接方法,包括以下步骤:
步骤1:对超长购物清单从左到右或者从上到下按顺序拍摄多张清单照片;
步骤2:按照拍摄顺序对每张清单照片进行依次排序;
步骤3:根据AKAZE算法提取第一张清单照片的N个FEATURE,即N个特征点;
步骤4:将N个特征点两两连线,得到N*(N-1)/2条线段,并计算每条线段的长度;
步骤5:将N*(N-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Un;
步骤6:根据AKAZE算法提取第二张清单照片的M个FEATURE,即M个特征点;
步骤7:将M个特征点两两连线,得到M*(M-1)/2条线段,并计算每条线段的长度;
步骤8:将M*(M-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Um;
步骤9:将第一张清单照片的集合Un内线段分别与第二张清单照片的集合Um内线段进行比较,提取集合Un内线段与集合Um内线段的相同端点,从而提取第一张清单照片与第二张清单照片的相同特征点;
步骤10:根据步骤9提取的相同特征点,采用AKAZE算法进行第一张清单照片与第二张清单照片的拼接;
步骤11:依次按照步骤3至步骤10的方法拼接所有相邻的照片。
作为本发明进一步改进的技术方案,所述步骤9中所述的提取集合Un内线段与集合Um内线段的相同端点的方法具体包括:
(9.1)集合Un内线段的编号为Lnx,其中x按照线段长度由长到短依次取值为1、2、3、N*(N-1)/2;集合Um内线段的编号为Lmy,其中y按照线段长度由长到短依次取值为1、2、3、M*(M-1)/2;
(9.2)按照线段排列顺序提取集合Un内的第一个线段Lnx;
(9.3)将提取的一个线段Lnx分别与集合Um内的所有线段Lmy依次进行对比,若线段Lnx与线段Lmy之间的长度差小于3,则执行步骤(9.5),若线段Lnx与所有的线段Lmy之间的长度差均大于等于3,则执行步骤(9.4);
(9.4)按照线段排列顺序提取集合Un内的下一个线段Lnx;返回执行步骤(9.3),直到集合Un内的所有线段全部被提取,流程结束;
(9.5)获取与一个线段Lnx的长度差小于3的所有线段Lmy;
(9.6)获取与线段Lnx的两个端点(Pn1,Pn2)分别相连接的线段集合Un1,Un2;
(9.7)提取步骤(9.5)中的其中一个线段Lmy,并获取与该线段Lmy的两个端点(Pm1,Pm2)分别相连接的线段集合Um1,Um2;
(9.8)将集合Un1中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,若长度差小于3的线段数量大于5,且长度差小于3的两个线段之间形成的夹角度数小于0.05度,则判断端点Pn1与端点Pm1为相同端点,执行步骤(9.9),否则,执行步骤(9.10);
(9.9)按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn2和Pm2是否为相同的端点,执行步骤(9.11);
(9.10)按照步骤(9.8)的方法将集合Un1中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn1和Pm2是否为相同的端点;按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,从而判断Pn2和Pm1是否为相同的端点,执行步骤(9.11);
(9.11)返回执行步骤(9.7),直到步骤(9.5)中的所有线段Lmy均被步骤(9.7)提取,则执行步骤(9.12);
(9.12)返回执行步骤(9.4)。
本发明的有益效果为:本发明对需要拼接的清单照片通过一定算法过滤了不一致的特征点,使得需要拼接的清单照片根据相同的特征点进行拼接,这样利用AKAZE算法进行拼接出来的效果更正确。克服了现有技术直接采用经典的AKAZE算法进行拼接导致的拼接错误。为超长购物清单的信息提取工作奠定基础。
附图说明
图1为本发明的工作流程图。
具体实施方式
下面根据图1对本发明的具体实施方式作出进一步说明:
用户通过系统应用移动移动手机等拍摄工具对超长购物清单从左至右或者从上到下顺序拍摄多张清单照片,从拍摄的第一张照片开始编号P1,P2,P3……Pn,清单照片在具体拼接时:
(1)先将第一张照片P1与第二张照片P2进行拼接,拼接后照片为P1-2;
(2)将拼接后照片P1-2继续与第三张照片P3进行拼接,拼接后照片为P1-3;
(3)将拼接后照片P1-3继续与第四张照片P4进行拼接,拼接后照片为P1-4;
……
(n-1)将拼接后照片P1-n-1继续与第n张照片Pn进行拼接,拼接后照片为P1-n;
P1-n即为最后完成的照片。拼接算法采用经典的AKAZE算法,但是由于票据是黑字白背景样式,导致拼接对象的2张清单照片获取到的Feature(特征)并不完全一致,从而导致拼接错误。因此本实施例在进行拼接前通过一定算法过滤不一致特征点,从而达到有效拼接的目的。详细如下:
参见图1,一种超长购物清单的拼接方法,包括以下步骤:
步骤1:对超长购物清单从左到右或者从上到下按顺序拍摄多张清单照片;
步骤2:按照拍摄顺序对每张清单照片进行依次排序,从拍摄的第一张清单照片开始编号P1,P2,P3……Pn;
步骤3:根据AKAZE算法提取第一张清单照片P1的N个FEATURE,即N个特征点;
步骤4:将N个特征点两两连线,得到N*(N-1)/2条线段,并计算每条线段的长度;
步骤5:将N*(N-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Un;
步骤6:根据AKAZE算法提取第二张清单照片P2的M个FEATURE,即M个特征点;
步骤7:将M个特征点两两连线,得到M*(M-1)/2条线段,并计算每条线段的长度;
步骤8:将M*(M-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Um;
步骤9:将第一张清单照片的集合Un内线段分别与第二张清单照片的集合Um内线段进行比较,提取集合Un内线段与集合Um内线段的相同端点,从而提取第一张清单照片与第二张清单照片的相同特征点;
步骤10:根据步骤9提取的相同特征点,采用AKAZE算法进行第一张清单照片P1与第二张清单照片P2的拼接;
步骤11:依次按照步骤3至步骤10的方法并根据上述(1)至(n-1)的拼接方式拼接所有相邻的照片。
所述步骤9中的提取集合Un内线段与集合Um内线段的相同端点的方法具体包括:
(9.1)集合Un内线段的编号为Lnx,其中x按照线段长度由长到短依次取值为1、2、3、N*(N-1)/2;集合Um内线段的编号为Lmy,其中y按照线段长度由长到短依次取值为1、2、3、M*(M-1)/2;
(9.2)按照线段排列顺序提取集合Un内的第一个线段Lnx;
(9.3)将提取的一个线段Lnx分别与集合Um内的所有线段Lmy依次进行对比,若线段Lnx与线段Lmy之间的长度差小于3,则执行步骤(9.5),若线段Lnx与所有的线段Lmy之间的长度差均大于等于3,则执行步骤(9.4);
(9.4)按照线段排列顺序提取集合Un内的下一个线段Lnx;返回执行步骤(9.3),直到集合Un内的所有线段全部被提取,流程结束;
(9.5)获取与一个线段Lnx的长度差小于3的所有线段Lmy;
(9.6)获取与线段Lnx的两个端点(Pn1,Pn2)分别相连接的线段集合Un1,Un2;
(9.7)提取步骤(9.5)中的其中一个线段Lmy,并获取与该线段Lmy的两个端点(Pm1,Pm2)分别相连接的线段集合Um1,Um2;
(9.8)将集合Un1中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,若长度差小于3(长度基本一致)的线段数量大于5,且长度差小于3的两个线段之间形成的夹角度数小于0.05度(夹角基本相同),则判断端点Pn1与端点Pm1为相同端点(即有效点),执行步骤(9.9),否则,执行步骤(9.10);
(9.9)按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn2和Pm2是否为相同的端点,执行步骤(9.11);
(9.10)按照步骤(9.8)的方法将集合Un1中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn1和Pm2是否为相同的端点;按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,从而判断Pn2和Pm1是否为相同的端点,执行步骤(9.11);
(9.11)返回执行步骤(9.7),直到步骤(9.5)中的所有线段Lmy均被步骤(9.7)提取,则执行步骤(9.12);
(9.12)返回执行步骤(9.4)。
(9.13)如果集合Un内线段与集合Um内线段的相同端点(即FEATURE)的个数> N *60%,则将相同端点以外的端点去掉,保留相同端点,根据这部分相同端点,利用AKAZE算法进行正确拼接。如果个数<N * 60%,则说明判断的2张清单照片并不是相邻的照片,无法进行拼接。
所述步骤9的含义是将集合Un内的线段Lnx和集合Um内的线段Lmy进行两两对比,从而提取长度相差小于3的两条线段,然后判断该两条线段的端点是否一致,从而判断出相同端点。
本发明通过对相邻2张清单照片在进行拼接前通过一定算法过滤不一致特征点,使得相邻的2张清单照片根据相同的特征点进行拼接,这样利用AKAZE算法进行拼接出来的效果效果更正确。
本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。
Claims (2)
1.一种超长购物清单的拼接方法,其特征在于,包括以下步骤:
步骤1:对超长购物清单从左到右或者从上到下按顺序拍摄多张清单照片;
步骤2:按照拍摄顺序对每张清单照片进行依次排序;
步骤3:根据AKAZE算法提取第一张清单照片的N个FEATURE,即N个特征点;
步骤4:将N个特征点两两连线,得到N*(N-1)/2条线段,并计算每条线段的长度;
步骤5:将N*(N-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Un;
步骤6:根据AKAZE算法提取第二张清单照片的M个FEATURE,即M个特征点;
步骤7:将M个特征点两两连线,得到M*(M-1)/2条线段,并计算每条线段的长度;
步骤8:将M*(M-1)/2条线段按照线段长度由长到短进行排序,得到线段集合Um;
步骤9:将第一张清单照片的集合Un内线段分别与第二张清单照片的集合Um内线段进行比较,提取集合Un内线段与集合Um内线段的相同端点,从而提取第一张清单照片与第二张清单照片的相同特征点;
步骤10:根据步骤9提取的相同特征点,采用AKAZE算法进行第一张清单照片与第二张清单照片的拼接;
步骤11:依次按照步骤3至步骤10的方法拼接所有相邻的照片。
2.根据权利要求1所述的超长购物清单的拼接方法,其特征在于,所述步骤9中所述的提取集合Un内线段与集合Um内线段的相同端点的方法具体包括:
(9.1)集合Un内线段的编号为Lnx,其中x按照线段长度由长到短依次取值为1、2、3、N*(N-1)/2;集合Um内线段的编号为Lmy,其中y按照线段长度由长到短依次取值为1、2、3、M*(M-1)/2;
(9.2)按照线段排列顺序提取集合Un内的第一个线段Lnx;
(9.3)将提取的一个线段Lnx分别与集合Um内的所有线段Lmy依次进行对比,若线段Lnx与线段Lmy之间的长度差小于3,则执行步骤(9.5),若线段Lnx与所有的线段Lmy之间的长度差均大于等于3,则执行步骤(9.4);
(9.4)按照线段排列顺序提取集合Un内的下一个线段Lnx;返回执行步骤(9.3),直到集合Un内的所有线段全部被提取,流程结束;
(9.5)获取与一个线段Lnx的长度差小于3的所有线段Lmy;
(9.6)获取与线段Lnx的两个端点(Pn1,Pn2)分别相连接的线段集合Un1,Un2;
(9.7)提取步骤(9.5)中的其中一个线段Lmy,并获取与该线段Lmy的两个端点(Pm1,Pm2)分别相连接的线段集合Um1,Um2;
(9.8)将集合Un1中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,若长度差小于3的线段数量大于5,且长度差小于3的两个线段之间形成的夹角度数小于0.05度,则判断端点Pn1与端点Pm1为相同端点,执行步骤(9.9),否则,执行步骤(9.10);
(9.9)按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn2和Pm2是否为相同的端点,执行步骤(9.11);
(9.10)按照步骤(9.8)的方法将集合Un1中所有线段的长度分别与集合Um2中所有线段的长度进行差计算,从而判断Pn1和Pm2是否为相同的端点;按照步骤(9.8)的方法将集合Un2中所有线段的长度分别与集合Um1中所有线段的长度进行差计算,从而判断Pn2和Pm1是否为相同的端点,执行步骤(9.11);
(9.11)返回执行步骤(9.7),直到步骤(9.5)中的所有线段Lmy均被步骤(9.7)提取,则执行步骤(9.12);
(9.12)返回执行步骤(9.4)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832815.4A CN109064401B (zh) | 2018-07-26 | 2018-07-26 | 一种超长购物清单的拼接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832815.4A CN109064401B (zh) | 2018-07-26 | 2018-07-26 | 一种超长购物清单的拼接方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109064401A true CN109064401A (zh) | 2018-12-21 |
CN109064401B CN109064401B (zh) | 2023-06-23 |
Family
ID=64836509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810832815.4A Active CN109064401B (zh) | 2018-07-26 | 2018-07-26 | 一种超长购物清单的拼接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109064401B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819835A (zh) * | 2012-07-26 | 2012-12-12 | 中国航天科工集团第三研究院第八三五七研究所 | 一种图像拼接中筛选特征点匹配对的方法 |
CN104680514A (zh) * | 2013-11-29 | 2015-06-03 | 三星泰科威株式会社 | 使用特征点匹配的图像匹配方法 |
CN104820983A (zh) * | 2015-04-23 | 2015-08-05 | 清华大学 | 一种图像匹配方法 |
CN106780328A (zh) * | 2016-12-06 | 2017-05-31 | 烟台大学 | 一种基于手机摄像头拍摄多幅照片自动拼接的文档扫描方法 |
-
2018
- 2018-07-26 CN CN201810832815.4A patent/CN109064401B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819835A (zh) * | 2012-07-26 | 2012-12-12 | 中国航天科工集团第三研究院第八三五七研究所 | 一种图像拼接中筛选特征点匹配对的方法 |
CN104680514A (zh) * | 2013-11-29 | 2015-06-03 | 三星泰科威株式会社 | 使用特征点匹配的图像匹配方法 |
CN104820983A (zh) * | 2015-04-23 | 2015-08-05 | 清华大学 | 一种图像匹配方法 |
CN106780328A (zh) * | 2016-12-06 | 2017-05-31 | 烟台大学 | 一种基于手机摄像头拍摄多幅照片自动拼接的文档扫描方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109064401B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373786A (zh) | 一种指纹采集方法、装置及电子设备 | |
CN107526807A (zh) | 信息推荐方法及装置 | |
CN104657396A (zh) | 数据迁移方法及装置 | |
CN106998262A (zh) | 一种识别上网用户的系统与方法 | |
CN109635212A (zh) | 基于微信的将用户关联至app的方法 | |
CN105931123A (zh) | 基于网络账号的好友推荐方法及装置 | |
CN104794386A (zh) | 一种基于人脸识别的数据处理的方法及装置 | |
CN106815723A (zh) | 转账方法及装置 | |
CN109410022A (zh) | 一种基于区块链技术的海外购物退税方法及相关设备 | |
CN109272336A (zh) | 一种风险商户发现方法和装置 | |
CN103533563B (zh) | 一种无线局域网账号的恢复方法及终端 | |
CN105224936A (zh) | 一种虹膜特征信息提取方法和装置 | |
CN108021654A (zh) | 一种相册图像处理方法及装置 | |
CN109064401A (zh) | 一种超长购物清单的拼接方法 | |
CN105701239A (zh) | 账户信息共享方法及装置 | |
CN109582883A (zh) | 栏目页的确定方法和装置 | |
CN109885708A (zh) | 证件图片的搜索方法和装置 | |
CN106933926B (zh) | 数据表的过滤方法及装置 | |
CN106686025A (zh) | 收集数据的方法和装置 | |
CN106844488A (zh) | 结合搜索的股票类ugc数据推荐方法及装置 | |
CN108038233B (zh) | 一种采集文章的方法、装置、电子设备及存储介质 | |
CN106934331A (zh) | 一种指纹图像拼接方法及装置 | |
CN106156247A (zh) | 图像管理方法及装置 | |
CN109491557A (zh) | 一种图标显示方法及装置 | |
CN106027484A (zh) | 一种信息展示的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |