Uygulama

Kodla Büyü

lepregon23

Site Gezgini
Mesajlar
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plaka_Sorgulama
{
class Program
{
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
başla:
Console.WriteLine("Plaka Giriniz Lütfen:");
int plaka = int.Parse(Console.ReadLine());
if (plaka == 01)
{
Console.Clear();
Console.WriteLine("Adana");
}
else if (plaka == 02)
{
Console.Clear();
Console.WriteLine("Adıyaman");
}
else if (plaka == 03)
{
Console.Clear();
Console.WriteLine("Ayfon");
}
else if (plaka == 04)
{
Console.Clear();
Console.WriteLine("Ağrı");
}
else if (plaka == 05)
{
Console.Clear();
Console.WriteLine("Amasya");
}
else if (plaka == 06)
{
Console.Clear();
Console.WriteLine("Ankara");
}
else if (plaka == 07)
{
Console.Clear();
Console.WriteLine("Antalya");
}
else if (plaka == 08)
{
Console.Clear();
Console.WriteLine("Artvin");
}
else if (plaka == 09)
{
Console.Clear();
Console.WriteLine("Aydın");
}
else if (plaka == 10)
{
Console.Clear();
Console.WriteLine("Balıkesir");
}
else if (plaka == 11)
{
Console.Clear();
Console.WriteLine("Bilecik");
}
else if (plaka == 12)
{
Console.Clear();
Console.WriteLine("Bingöl");
}
else if (plaka == 13)
{
Console.Clear();
Console.WriteLine("Bitlis");
}
else if (plaka == 14)
{
Console.Clear();
Console.WriteLine("Bolu");
}
else if (plaka == 15)
{
Console.Clear();
Console.WriteLine("Burdur");
}
else if (plaka == 16)
{
Console.Clear();
Console.WriteLine("Bursa");
}
else if (plaka == 17)
{
Console.Clear();
Console.WriteLine("Çanakkale");
}
else if (plaka == 18)
{
Console.Clear();
Console.WriteLine("Çankırı");
}
else if (plaka == 19)
{
Console.Clear();
Console.WriteLine("Çorum");
}
else if (plaka == 20)
{
Console.Clear();
Console.WriteLine("Denizli");
}
else if (plaka == 21)
{
Console.Clear();
Console.WriteLine("Diyarbakır");
}
else if (plaka == 22)
{
Console.Clear();
Console.WriteLine("Edirne");
}
else if (plaka == 23)
{
Console.Clear();
Console.WriteLine("Elazığ");
}
else if (plaka == 24)
{
Console.Clear();
Console.WriteLine("Erzincan");
}
else if (plaka == 25)
{
Console.Clear();
Console.WriteLine("Erzurum");
}
else if (plaka == 26)
{
Console.Clear();
Console.WriteLine("Eskişehir");
}
else if (plaka == 27)
{
Console.Clear();
Console.WriteLine("Gaziantep");
}
else if (plaka == 28)
{
Console.Clear();
Console.WriteLine("Giresun");
}
else if (plaka == 29)
{
Console.Clear();
Console.WriteLine("Gümüşhane");
}
else if (plaka == 30)
{
Console.Clear();
Console.WriteLine("Hakkari");
}
else if (plaka == 31)
{
Console.Clear();
Console.WriteLine("Hatay");
}
else if (plaka == 32)
{
Console.Clear();
Console.WriteLine("Isparta");
}
else if (plaka == 33)
{
Console.Clear();
Console.WriteLine("Mersin");
}
else if (plaka == 34)
{
Console.Clear();
Console.WriteLine("İstanbul");
}
else if (plaka == 35)
{
Console.Clear();
Console.WriteLine("İzmir");
}
else if (plaka == 36)
{
Console.Clear();
Console.WriteLine("Kars");
}
else if (plaka == 37)
{
Console.Clear();
Console.WriteLine("Kastomonu");
}
else if (plaka == 38)
{
Console.Clear();
Console.WriteLine("Kayseri");
}
else if (plaka == 39)
{
Console.Clear();
Console.WriteLine("Kırklareli");
}
else if (plaka == 40)
{
Console.Clear();
Console.WriteLine("Kırşehir");
}
else if (plaka == 41)
{
Console.Clear();
Console.WriteLine("Kocaeli");
}
else if (plaka == 42)
{
Console.Clear();
Console.WriteLine("Konya");
}
else if (plaka == 43)
{
Console.Clear();
Console.WriteLine("Kütahya");
}
else if (plaka == 44)
{
Console.Clear();
Console.WriteLine("Malatya");
}
else if (plaka == 45)
{
Console.Clear();
Console.WriteLine("Manisa");
}
else if (plaka == 46)
{
Console.Clear();
Console.WriteLine("Kahramanmaraş");
}
else if (plaka == 47)
{
Console.Clear();
Console.WriteLine("Mardin");
}
else if (plaka == 48)
{
Console.Clear();
Console.WriteLine("Muğla");
}
else if (plaka == 49)
{
Console.Clear();
Console.WriteLine("Muş");
}
else if (plaka == 50)
{
Console.Clear();
Console.WriteLine("Nevşehir");
}
else if (plaka == 51)
{
Console.Clear();
Console.WriteLine("Niğde");
}
else if (plaka == 52)
{
Console.Clear();
Console.WriteLine("Ordu");
}
else if (plaka == 53)
{
Console.Clear();
Console.WriteLine("Rize");
}
else if (plaka == 54)
{
Console.Clear();
Console.WriteLine("Sakarya");
}
else if (plaka == 55)
{
Console.Clear();
Console.WriteLine("Samsun");
}
else if (plaka == 56)
{
Console.Clear();
Console.WriteLine("Siirt");
}
else if (plaka == 57)
{
Console.Clear();
Console.WriteLine("Sinop");
}
else if (plaka == 58)
{
Console.Clear();
Console.WriteLine("Sivas");
}
else if (plaka == 59)
{
Console.Clear();
Console.WriteLine("Tekirdağ");
}
else if (plaka == 60)
{
Console.Clear();
Console.WriteLine("Tokat");
}
else if (plaka == 61)
{
Console.Clear();
Console.WriteLine("Trabzon");
}


else if (plaka == 62)
{
Console.Clear();
Console.WriteLine("Tunceli");
}
else if (plaka == 63)
{
Console.Clear();
Console.WriteLine("Urfa");
}
else if (plaka == 64)
{
Console.Clear();
Console.WriteLine("Uşak");
}

else if (plaka == 65)
{
Console.Clear();
Console.WriteLine("Van");
}
else if (plaka == 66)
{
Console.Clear();
Console.WriteLine("Yozgat");
}
else if (plaka == 67)
{
Console.Clear();
Console.WriteLine("Zonguldak");
}
else if (plaka == 68)
{
Console.Clear();
Console.WriteLine("Aksaray");
}
else if (plaka == 69)
{
Console.Clear();
Console.WriteLine("Bayburt");
}
else if (plaka == 70)
{
Console.Clear();
Console.WriteLine("Karaman");
}
else if (plaka == 71)
{
Console.Clear();
Console.WriteLine("Kırıkkale");
}
else if (plaka == 72)
{
Console.Clear();
Console.WriteLine("Batman");
}
else if (plaka == 73)
{
Console.Clear();
Console.WriteLine("Şırnak");
}
else if (plaka == 74)
{
Console.Clear();
Console.WriteLine("Bartın");
}
else if (plaka == 75)
{
Console.Clear();
Console.WriteLine("Ardahan");
}
else if (plaka == 76)
{
Console.Clear();
Console.WriteLine("Iğdır");
}
else if (plaka == 77)
{
Console.Clear();
Console.WriteLine("Yalova");
}
else if (plaka == 78)
{
Console.Clear();
Console.WriteLine("Karabük");
}
else if (plaka == 79)
{
Console.Clear();
Console.WriteLine("Kilis");
}
else if (plaka == 80)
{
Console.Clear();
Console.WriteLine("Osmaniye");
}
else if (plaka == 81)
{
Console.Clear();
Console.WriteLine("Düzce");
}
else if (plaka<0 || plaka >81)
{
Console.WriteLine("Hatalı Giriş");
goto başla;
}

Console.ReadKey();
}
}
}

Hazırlayan : Lepregon23
 

Ekli dosyalar

  • Plaka Sorgulama.rar
    37.3 KB · Görüntüleme: 35
Re: C# Plaka Sorgulama

bu kadar if else kodu yazana kadar switch case kullansaydınız keşke
 
Re: C# Plaka Sorgulama

hocam plaka sorgulama deyince, opencv, emgucv filan kullandın diye düşündüm. Konuyu ilerletmek istersen plate recognition şeklinde bakabilirsin
 
Re: C# Plaka Sorgulama

erdcannet' Alıntı:
hocam plaka sorgulama deyince, opencv, emgucv filan kullandın diye düşündüm. Konuyu ilerletmek istersen plate recognition şeklinde bakabilirsin

bende aynı şeyi düşündüm kodu görünce irkildim. Arkadaşın plate recognation ve computer visiondan önce dizi ve generik listeleri öğrenmesinde fayda var.
 
Re: C# Plaka Sorgulama

Yardım edici olarak şunları yazabilirim.
Kod:
public void ResimBasitleştirme() 
        {
            IplConvKernel element = Cv.CreateStructuringElementEx(21, 3, 10, 2, ElementShape.Rect, null);
            timg = new IplImage(src.Size, BitDepth.U8, 1);
            IplImage temp = timg.Clone();
            IplImage dest = timg.Clone();
            src.CvtColor(timg, ColorConversion.RgbaToGray);
            pimg = timg.Clone();
            //Cv.Threshold(pimg, pimg, 128, 255, ThresholdType.Binary | ThresholdType.Otsu);
            Cv.Smooth(timg, timg, SmoothType.Gaussian);
            Cv.MorphologyEx(timg, dest, temp, element, MorphologyOperation.TopHat, 1);

            Cv.Threshold(dest, timg, 128, 255, ThresholdType.Binary | ThresholdType.Otsu);
            Cv.Smooth(timg, dest, SmoothType.Median);
            Cv.Dilate(dest, dest, element, 2);
            
            Cv.ReleaseImage(temp);
            Cv.ReleaseImage(dest);
        
        }

        public int TabakaBulma() 
        {
            IplImage labelImg = new IplImage(src.Size, CvBlobLib.DepthLabel, 1);
            blobs = new CvBlobs();
            plaka.Clear();
            CvBlobLib.Label(timg, labelImg, blobs);
            CvBlobLib.FilterByArea(blobs, 600, 10000);
            IplImage srctemp = src.Clone();
            CvBlobLib.RenderBlobs(labelImg, blobs, src, srctemp, RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);

            foreach (var item in blobs)
            {

                item.Value.SetImageROItoBlob(pimg);
                // ratio values of plate between 3.5 and 5.4 
                double ratio = (double)item.Value.Rect.Width / item.Value.Rect.Height;
                double angle = (double)item.Value.CalcAngle();
                if (ratio > 3.5 && ratio < 5.4 && angle > -15 && angle < 15)
                {
//                    IplImage plakatemp = new IplImage(new CvSize(pimg.ROI.Width, pimg.ROI.Height), pimg.Depth, pimg.NChannels);
                    IplImage plakatemp = new IplImage(new CvSize(140,27), pimg.Depth, pimg.NChannels);
                    Cv.Resize(pimg, plakatemp);
//                    Cv.Copy(pimg, plakatemp);
                    plaka.Add(plakatemp);
                    src.Rectangle(item.Value.Rect, new CvScalar(0,0,255),2,LineType.Link4 );
                }

            }

//            CvBlobLib.RenderBlobs(labelImg, blobs, src, src, RenderBlobsMode.BoundingBox);
            src.ResetROI();

            return plaka.Count;
        
        }

        public void TabakaOkuma(OcrType ocr)
        {
            plakaList.Clear();
            int i = 1;
            foreach(var plkimg in plaka)
            {
        //        plkimg.SaveImage("tmp.pgm");
                plakaList.Add(i.ToString()+" ) "+ RunOcr(plkimg,ocr));
                i++;
            }
         
        }

Ayrıca vs2010 için yardımcı dll ler olarak ta.

gocr.exe , Puma.Net.dll ayrıca OpenCv kod kütüphanesi olarak ta 2010 uyumlu

OpenCvSharp.Blob.dll
OpenCvSharp.CPlusPlus.dll
OpenCvSharp.dll
OpenCvSharp.Extensions.dll
OpenCvSharp.MachineLearning.dll
OpenCvSharp.UserInterface.dll
OpenCvSharpExtern.dll
 

Ekli dosyalar

  • dll.rar
    449.6 KB · Görüntüleme: 34
Re: C# Plaka Sorgulama

@erdcannet ve @togius hocalarım, konu başlıktan bağımsız yönlere gitti ama bir şey soracaktım. emgucv (opencv'de olur) kullanarak bağlantılı bileşen etiketleme (connected component labeling) yaptınız mı?
kromozom etiketleme ile uğraşıyorum. kurduğum algoritmada mı sıkıntı var?
etiketleme işlemi için incelenecek pixel'in resimdeki gibi komşuluklarını kontrol ediyorum. sarı ile kontrol edilen pixel için 1-2-3-4 ile işaretlenmiş pikselleri kontrol ediyorum. büyük olan ve küçük olan etiket değerlerini birer arraylistte tutuyorum ve ikinci geçiş için büyük olan pixelleri küçük olanlara çeviriyorum. ama örneklerimde bazen sıkıntı çıkıyor. var mı alternatif düşünceleriniz?

kromozom görüntüsü

benim örneğim
 

Ekli dosyalar

  • 1.PNG
    1.PNG
    1.7 KB · Görüntüleme: 1,644
  • 2.PNG
    2.PNG
    44.6 KB · Görüntüleme: 1,644
  • 3.PNG
    3.PNG
    34.2 KB · Görüntüleme: 1,643
Geri
Üst