private void recognize_Click(object sender, EventArgs e) { numberblack = 0; richTextBox1.Text = ""; if (button == true) { Color[,] All = new Color[image.Width - 1, image.Height - 1]; for (int i = 0; i < (image.Width - 1); i++) { for (int j = 0; j < (image.Height - 1); j++) { All[i, j] = image.GetPixel(i, j); } } numberblack = barcode.numberblack(image, All); switch (numberblack) { case 30: { richTextBox1.Text += "Код: EAN-13" + "\n"; string[] result = barcodeEAN.barcodeEAN13(image, All); if (result.Length != 0) { for (int i = 0; i < 13; i++) { richTextBox1.Text += result[i]; } richTextBox1.Text += "\nТовар:" + barcode.searchProduct(String.Concat <string>(result)); } else { richTextBox1.Text = "Штрих-код не розпізнано!"; } } break; case 22: { richTextBox1.Text += "Код:EAN-8" + "\n"; string[] result = barcodeEAN.barcodeEAN8(image, All); if (result.Length != 0) { for (int i = 0; i < 8; i++) { richTextBox1.Text += result[i]; } richTextBox1.Text += "\nТовар:" + barcode.searchProduct(String.Concat <string>(result)); } else { richTextBox1.Text = "Штрих-код не розпізнано!"; } } break; default: { richTextBox1.Text += "Код:Code39" + "\n"; ArrayList barcode = new ArrayList(); string code = ""; BarcodeCode.barcodeCode(ref barcode, image); if (barcode.Count != 0) { for (int i = 0; i < barcode.Count; i++) { richTextBox1.Text += barcode[i]; code += barcode[i]; } richTextBox1.Text += "\nТовар:" + this.barcode.searchProduct(code); } else { richTextBox1.Text = "Штрих-код не розпізнано!"; } } break; } } else { MessageBox.Show("Завантажте зображення!", "Помилка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void barcodeEAN13Test() { // arrange BarcodeEAN barcode = new BarcodeEAN(); Bitmap image_1 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\1.gif"); Bitmap image_2 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\2.gif"); Bitmap image_3 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\3.gif"); Bitmap image_4 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\4.gif"); Bitmap image_5 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\5.jpg"); Bitmap image_6 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\6.jpg"); Bitmap image_7 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\7.jpg"); Bitmap image_8 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\8.gif"); Bitmap image_9 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\9.gif"); Bitmap image_10 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\10.gif"); Bitmap image_11 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\11.gif"); Bitmap image_12 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\12.gif"); Bitmap image_13 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\13.gif"); Bitmap image_14 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\14.gif"); Bitmap image_15 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\15.gif"); Bitmap image_16 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\16.gif"); Bitmap image_17 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\17.gif"); Bitmap image_18 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\18.gif"); Bitmap image_19 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\19.gif"); Bitmap image_20 = new Bitmap("D:\\ИАД Курсач\\image\\EAN13\\20.gif"); List <Bitmap> imageList = new List <Bitmap>(); imageList.Add(image_1); imageList.Add(image_2); imageList.Add(image_3); imageList.Add(image_4); imageList.Add(image_5); imageList.Add(image_6); imageList.Add(image_7); imageList.Add(image_8); imageList.Add(image_9); imageList.Add(image_10); imageList.Add(image_11); imageList.Add(image_12); imageList.Add(image_13); imageList.Add(image_14); imageList.Add(image_15); imageList.Add(image_16); imageList.Add(image_17); imageList.Add(image_18); imageList.Add(image_19); imageList.Add(image_20); int count = 0; string[] barcodeOtvet = { "9780201379624", "9780202279626", "8880202279624", "8870211279616", "8870202279625", "1870211279613", "1870211272003", "1440211272008", "9940211272005", "9940211272012", "9702230379628", "9802230379625", "9812230379624", "981223037978", "9780278379626", "1110278379629", "1110108379638", "1220108379634", "8220108379637", "8221978379635" }; string barcodeEAN = ""; string[] result; for (int t = 0; t < 20; t++) { string otvet = ""; Color[,] All = new Color[imageList[t].Width - 1, imageList[t].Height - 1]; for (int i = 0; i < (imageList[t].Width - 1); i++) { for (int j = 0; j < (imageList[t].Height - 1); j++) { All[i, j] = imageList[t].GetPixel(i, j); } } // act barcodeEAN = ""; result = barcode.barcodeEAN13(imageList[t], All); for (int i = 0; i < 13; i++) { barcodeEAN += result[i]; } // assert if (barcodeEAN == barcodeOtvet[t]) { otvet = " Функція повернула вірне значення"; count++; } else { otvet = " Функція повертає невірне значення"; } Debug.WriteLine("Правильна відповідь має бути: " + barcodeOtvet[t] + " Функція повернула значення: " + barcodeEAN + otvet); } Debug.Write("Кількість правильно розпізнаних штрих-кодів: " + count); }