1.一種棱柱表面的二維碼的生成和采集方法,所述棱柱表面從左到右依次包括第一平面、第二平面和第三平面,其特征在于,包括:
獲取所述原始二維碼的寬度,以及所棱柱表面中的第一平面、第二平面和第三平面在標準平面中的投影的寬度比例,其中,所述標準平面為所述第二平面的平行平面;
根據(jù)所述寬度比例將所述原始二維碼分割為對應部分,對所述第一平面和第三平面對應的原始二維碼部分分別做橫向線性拉伸,得到所述第一平面和所述第三平面的預形變二維碼部分,將所述第二平面對應的原始二維碼部分直接作為第二平面的預形變二維碼部分,將所述第一平面、所述第二平面和第三平面的預形變二維碼部分組合成完整的預形變二維碼,打印在所述棱柱表面的對應位置處;
使用采集設備對所述完整的預形變二維碼沿垂直所述標準面的方向進行圖像采集,得到所述完整的預形變二維碼對應的采集圖像,所述采集圖像與所述原始二維碼相同。
2.根據(jù)權利要求1所述的棱柱表面的二維碼的生成和采集方法,其特征在于,所述棱柱表面的二維碼的生成包括:
將所述原始二維碼在豎直高度上切成單位厚度為1像素點的行像素;
對每一行所述像素位于第一平面和第三平面上的部分進行相應的所述橫向線性拉伸,得到所述棱柱表面上的預形變二維碼的與所述行像素對應的預形變行像素;
遍歷整個所述的預形變二維碼圖像,根據(jù)與原始二維碼圖像的對應關系,對預形變二維碼圖像進行賦值,從而得到預形變二維碼圖像。
3.根據(jù)權利要求2所述的棱柱表面的二維碼的生成和采集方法,其特征在于,對于所述行像素,其進一步包括第一段直線段、第二段直線段和第三直線段,所述對每一行所述像素位于第一平面和第三平面上的部分進行相應的所述橫向線性拉伸的過程為:
將原始二維碼中的第一直線段的像素進行編號;
得到第一平面與第二平面之間的較小的角度,計算其角度的正弦作為第一比例值,將原始二維碼中的第一平面寬度除以第一比例值,可以得到預形變二維碼中第一平面的寬度,將所述預形變二維碼中第一直線段的像素點進行編號;
將預形變二維碼中所述第一直線段的編號乘以所述第一比例值,然后四舍五入取整,得到對應的原始二維碼中第一直線段的像素點編號,從而得到預形變二維碼第一直線段中像素點與原始二維碼第一直線段像素點的對應關系;
根據(jù)所述的像素點對應關系將原始二維碼中第一直線段中的像素點的像素賦值在預形變二維碼部分的第一直線段的對應編號的像素點,生成預形變二維碼第一直線段;
對所述第三段直線段對應的原始二維碼部分做如對所述第一段直線段的所述橫向線性拉伸,生成第三段直線段的預形變二維碼第三行像素段;
將所述第二段直線段對應的原始二維碼部分的像素點的像素值直接賦值在所述第二段直線段的預形變二維碼部分的對應編號的像素點上;
將所述預形變二維碼第一行像素段、預形變二維碼第二行像素段和預形變二維碼第三行像素段組成所述行像素對應的預形變二維碼行像素;
對每一個所述行像素均執(zhí)行前述過程,將生成的多個所述預形變二維碼行像素組合成所述完整的形變二維碼。
4.根據(jù)權利要求1所述的棱柱表面的二維碼的生成和采集方法,其特征在于,所述對所述第一平面和第三平面對應的原始二維碼部分分別做橫向線性拉伸包括:
將原始二維碼中的第一平面的像素進行編號;
得到第一平面與第二平面之間的較小的角度,計算其角度的正弦作為第一比例值,將原始二維碼中的第一平面寬度除以第一比例值,可以得到預形變二維碼中第一平面的寬度,將所述預形變二維碼中第一平面的像素點進行編號;
將預形變二維碼中所述第一平面的編號乘以所述第一比例值,然后四舍五入取整,得到對應的原始二維碼中第一平面的像素點編號,從而得到預形變二維碼第一平面中像素點與原始二維碼第一平面像素點的對應關系;
根據(jù)所述的像素點對應關系將原始二維碼中第一直線段中的像素點的像素賦值在預形變二維碼部分的第一直線段的對應編號的像素點,生成預形變二維碼第一平面;
對所述第三平面對應的原始二維碼部分做如對所述第一平面相同的所述橫向線性拉伸,生成第三平面的預形變二維碼部分;
對所述第二平面對應的原始二維碼部分不做處理,直接將所述第二平面對應的原始二維碼部分作為第二平面的預形變二維碼部分。
5.根據(jù)權利要求4所述的棱柱表面的二維碼的生成和采集方法,其特征在于,所述棱柱體表面的二維碼的生成過程包括:
將所述原始二維碼一列像素進行相應的橫向線性拉伸或不做處理,得到所述棱柱表面上的預形變二維碼的與所述列像素對應的列像素;
遍歷整個所述原始二維碼圖像,得到預形變二維碼圖像。
6.根據(jù)權利要求4所述的棱柱表面的二維碼的生成和采集方法,其特征在于,當所述棱柱表面左右對稱時,僅需計算對稱軸一側的預形變二維碼的像素點編號,根據(jù)所述編號對所述預形變二維碼的像素點賦值,并按照同樣的賦值方法對對稱軸另一側的預形變二維碼的像素點進行賦值。