QR kodlar orqali ifodalanga axborotoni o’qish algoritmi:
1-qadam.Tasvirdan belgilarini
aniqlash va ularni
hosil qilish kerak. Qora va oq
modullarni "0" va "1" bitlar orqali ifodalalngan massiv hosil qilinadi.
2-qadam.Axborotning shakli aniqlanadi (o'qiladi).
Ushbu jaayon quyidagi
am
alga oshiriladi:
Maskalash jarayoni
uchun
belgilar aniqlnadi , aniqlangan
belgilardagi xatoliklar
tuzatiladi.
3-qadam.Aniqlangan belgilarning versiyasi aniqlanadi.
4-qadam.XOR kodlashi orqali belgilar maskerovka qilinadi.
5-qadam.Belgilardagi belgini QR kod orqali ifodalangan axborotdan oq’iladi.
6-qadam.Xatolarni tuzatish uchun maxsus kodlangan so’zlar orqali aniqlanadi. Agar
xato aniqlansa, u holda tuzatiladi.
7-qadam.Shifrlangan so’zlarni
bir nechta qismga
bo’inadi.
8-qadam.Natija chiqariladi.
Ko’rib chiqilgan algoritim orqali keltirilgan qadalamlarni blik sxemalalr orqali
ifodalaymiz.Bu blok sxemalalr orqali ifodalangan algoritim
barcha dasturchilar uchun
tushunarli va aniq hisoblanadi. Bu algoritimda Reed-Solomon
algoritimdan
yechim
sifatida ham foyadalanilgan. Reed-Solomon algoritmini RS belgilash orqali ishlatilgan.
Algortimimizni blok sxemalar orqali tasvirlaymiz
Boshlash
Oq va qora modullarni aniqlash
Axborotlarni
dekodlash
Versiyasini aniqlash
Maskani versiyasi
Ma’lumotlarni tiklash va RS kod so’zini qo’llash
Xatolik yo’q
Xatolikka tekshirish
Xatolik
Xatoliklar to’plami
Kodlangan so’zdan ma’lumotlarni
tiklash
Tamom
2-rasm.QR kodlardan ma’lumotlarni o’qish algoritmi
Yuqoridagi algoritim orqali QR kodlar orqali ifodalanga axborotni to’liqligicha o’qish
imkoniyatiga ega bo’lamiz.Bu algoritimni dasturlash tillari orqali ifodalab axborotlarni QR
kodlar orqali shifrlash va shu jarayonni teskarisini amalga oshirishimiz mumkin bo’ladi.Bu
jarayonni c# dasturlash tili orqali amalga oshiramiz.
Ushbu dastur kodi c# dasturlash tilida yozilgan bolib QR koddan ma’lumotlarni
o’qish uchun ishlatiladi.
using System;
using
System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using
System.Drawing;
using System.Linq;
using System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
using
PQScan.BarcodeScanner;
namespace barcode
{
public partial class Form1 :
Form {
public Form1()
{
InitializeComponent();
}
string nomi ;
private void button1_Click(object sender,
EventArgs e) {OpenFileDialog OF = new
OpenFileDialog();
OF.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png,*.tif) |*.jpg; *.jpeg;
*.jpe; *.jfif; *.png;";
if (OF.ShowDialog() ==
System.Windows.Forms.DialogResult.OK) {
nom = OF.FileName;
BarcodeResult[] results =
BarCodeScanner.Scan(@nom); foreach
(BarcodeResult result in results)
{
textBox1.Text =
(result.Data); }
}
try
{
pictureBox1.Image = Image.FromFile(@nom);
} catch { }
}
private void button2_Click(object sender, EventArgs e)
{ Hide();
Form2 ss = new Form2();
ss.Show();
}
private void Form1_FormClosing(object sender,
FormClosingEventArgs e) {
Application.Exit();
}
}
}
Dastur kompilyatsiya qilingandan so’ng quyidagi ko’rishdagi formalalr hosil bo’ladi
(3-rasm).
3-rasm. QR kodni o’qish uchun yaratilgan dasturning ko’rinishi
QR kodlar orqali ifodalangan axborot tasvirlaridan birini tanlaymiz va undagi axborot
o’qiladi (4-rasm).
4-rasm. QR kodni o’qish
formasi