Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...

mcanatan

Üye
  • İçerik sayısı

    52
  • Katılım

  • Son ziyaret

  • Puan

    2,489 [ Bağış Yap ]

mcanatan kullanıcısının paylaşımları

  1. mcanatan

    Bitirme tezi kodlama yardım talebi

    araştırırken bulduğum kaynaklarda altta bulunan komut dizisine rast geldim. fakat aradığım değil. Parallel.ForEach>(contours, (contour) => burada paralel olarakçizdiriyor siyahın yanına. üzerine nasıl çizdereceğimi bilmiyorum. public void ProcessImage(Image grayFrame) { if (equalizeHist) grayFrame._EqualizeHist();//autocontrast //smoothed Image smoothedGrayFrame = grayFrame.PyrDown(); smoothedGrayFrame = smoothedGrayFrame.PyrUp(); //canny Image cannyFrame = null; if (noiseFilter) cannyFrame = smoothedGrayFrame.Canny(new Gray(cannyThreshold), new Gray(cannyThreshold)); //smoothing if (blur) grayFrame = smoothedGrayFrame; //binarize CvInvoke.cvAdaptiveThreshold(grayFrame, grayFrame, 255, Emgu.CV.CvEnum.ADAPTIVE_THRESHOLD_TYPE.CV_ADAPTIVE_THRESH_MEAN_C, Emgu.CV.CvEnum.THRESH.CV_THRESH_BINARY, adaptiveThresholdBlockSize + adaptiveThresholdBlockSize % 2 + 1, adaptiveThresholdParameter); // grayFrame._Not(); // if (addCanny) if (cannyFrame != null) grayFrame._Or(cannyFrame); // this.binarizedFrame = grayFrame; //dilate canny contours for filtering if (cannyFrame != null) cannyFrame = cannyFrame.Dilate(3); //find contours var sourceContours = grayFrame.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST); //filter contours contours = FilterContours(sourceContours, cannyFrame, grayFrame.Width, grayFrame.Height); //find templates lock (foundTemplates) foundTemplates.Clear(); samples.Clear(); lock (templates) Parallel.ForEach>(contours, (contour) => { var arr = contour.ToArray(); Template sample = new Template(arr, contour.Area, samples.templateSize); lock (samples) samples.Add(sample); if (!onlyFindContours) { FoundTemplateDesc desc = finder.FindTemplate(templates, sample); if (desc != null) lock (foundTemplates) foundTemplates.Add(desc); } } ); // FilterByIntersection(ref foundTemplates); -- mesaja ek olarak -- classın tam kodları ise burada // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. // // License: GNU General Public License version 3 (GPLv3) // // Email: [email protected]. // // Copyright (C) Pavel Torgashov, 2011. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Emgu.CV; using Emgu.CV.Structure; using System.Drawing; using System.Threading.Tasks; namespace ContourAnalysisNS { public class ImageProcessor { //settings public bool equalizeHist = false; public bool noiseFilter = false; public int cannyThreshold = 50; public bool blur = true; public int adaptiveThresholdBlockSize = 4; public double adaptiveThresholdParameter = 1.2d; public bool addCanny = true; public bool filterContoursBySize = true; public bool onlyFindContours = false; public int minContourLength = 15; public int minContourArea = 10; public double minFormFactor = 0.5; // public List> contours; public Templates templates = new Templates(); public Templates samples = new Templates(); public List foundTemplates = new List(); public TemplateFinder finder = new TemplateFinder(); public Image binarizedFrame; public void ProcessImage(Image frame) { ProcessImage(frame.Convert()); } public void ProcessImage(Image grayFrame) { if (equalizeHist) grayFrame._EqualizeHist();//autocontrast //smoothed Image smoothedGrayFrame = grayFrame.PyrDown(); smoothedGrayFrame = smoothedGrayFrame.PyrUp(); //canny Image cannyFrame = null; if (noiseFilter) cannyFrame = smoothedGrayFrame.Canny(new Gray(cannyThreshold), new Gray(cannyThreshold)); //smoothing if (blur) grayFrame = smoothedGrayFrame; //binarize CvInvoke.cvAdaptiveThreshold(grayFrame, grayFrame, 255, Emgu.CV.CvEnum.ADAPTIVE_THRESHOLD_TYPE.CV_ADAPTIVE_THRESH_MEAN_C, Emgu.CV.CvEnum.THRESH.CV_THRESH_BINARY, adaptiveThresholdBlockSize + adaptiveThresholdBlockSize % 2 + 1, adaptiveThresholdParameter); // grayFrame._Not(); // if (addCanny) if (cannyFrame != null) grayFrame._Or(cannyFrame); // this.binarizedFrame = grayFrame; //dilate canny contours for filtering if (cannyFrame != null) cannyFrame = cannyFrame.Dilate(3); //find contours var sourceContours = grayFrame.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST); //filter contours contours = FilterContours(sourceContours, cannyFrame, grayFrame.Width, grayFrame.Height); //find templates lock (foundTemplates) foundTemplates.Clear(); samples.Clear(); lock (templates) Parallel.ForEach>(contours, (contour) => { var arr = contour.ToArray(); Template sample = new Template(arr, contour.Area, samples.templateSize); lock (samples) samples.Add(sample); if (!onlyFindContours) { FoundTemplateDesc desc = finder.FindTemplate(templates, sample); if (desc != null) lock (foundTemplates) foundTemplates.Add(desc); } } ); // FilterByIntersection(ref foundTemplates); } private static void FilterByIntersection(ref List templates) { //sort by area templates.Sort(new Comparison((t1, t2) => -t1.sample.contour.SourceBoundingRect.Area().CompareTo(t2.sample.contour.SourceBoundingRect.Area()))); //exclude templates inside other templates HashSet toDel = new HashSet(); for (int i = 0; i { if (toDel.Contains(i)) continue; Rectangle bigRect = templates[i].sample.contour.SourceBoundingRect; int bigArea = templates[i].sample.contour.SourceBoundingRect.Area(); bigRect.Inflate(4, 4); for (int j = i + 1; j { if (bigRect.Contains(templates[j].sample.contour.SourceBoundingRect)) { double a = templates[j].sample.contour.SourceBoundingRect.Area(); if (a / bigArea > 0.9d) { //choose template by rate if (templates[i].rate > templates[j].rate) toDel.Add(j); else toDel.Add(i); } else//delete tempate toDel.Add(j); } } } List newTemplates = new List(); for (int i = 0; i if (!toDel.Contains(i)) newTemplates.Add(templates[i]); templates = newTemplates; } private List> FilterContours(Contour contours, Image cannyFrame, int frameWidth, int frameHeight) { int maxArea = frameWidth * frameHeight / 5; var c = contours; List> result = new List>(); while (c != null) { if (filterContoursBySize) if (c.Total c.Area maxArea || c.Area / c.Total goto next; if (noiseFilter) { Point p1 = c[0]; Point p2 = c[(c.Total / 2) % c.Total]; if (cannyFrame[p1].Intensity goto next; } result.Add(c); next: c = c.HNext; } return result; } } }
  2. blessed ko ya sizinle iletişime geçmesini önermekte haklıymışım :)
  3. Merhabalar değerli dostlar. Harita mühendisliği bölümünde okumaktayım ve bitirme tezi aldığım hocama bir miktar yazılım bildiğimi ağzımdan kaçırınca altından kalkamayacağım bir tez verdi. Tez şöyle eş yükselti eğrisi haritasını yazılımda seçeceğiz. Daha sonra bu eğrileri program tekrardan kendi başına çizmesi gerekiyor. Birkaç referans program bulmuş olsam da hala bu konuya bir çözüm bulamadım. örnek olarak photoshop ile yaptığım şu görsel gibi bir şey olacak ancak çemberler daha sonra silinmesi gerekecek. Her ne kadar çok iyi olmasada bir akış diyagramı çizdim oda burada. Uzun lafın kısası şuan en öncelikli olarak içeri aktarılacak eş yükselti eğrisi haritasının çizim kısmını yapmayı başaramadım. Bu konuda yardımlarınızı bekliyorum. -- mesaja ek olarak -- bulduğum kaynaklardan ikisi https://lasithapetthawadu.wordpress.com/2014/06/14/basic-contour-extraction-of-an-image-using-c-and-emgucv/ https://www.codeproject.com/Articles/196168/Contour-Analysis-for-Image-Recognition-in-C -- mesaja ek olarak -- /// /// konuyu tekrar okuduğumda anlam karmaşası olmuş aklımdakini yansıtamamışım bu sebeple tekrar yazım /// Merhabalar değerli dostlar. Harita mühendisliği bölümünde okumaktayım ve bitirme tezi aldığım hocama bir miktar yazılım bildiğimi ağzımdan kaçırınca altından kalkamayacağım bir tez verdi. Tez şöyle, eş yükselti eğrisi haritasını yazılımda seçeceğiz. Seçtiğimiz dosya jpg yada png dosyası gibi grafik dosyası olacak. Daha sonra bu eğrileri program tekrardan kendi başına çizmesi gerekiyor. izohips haritalarında bildiğiniz gibi genelde arka fon beyaz yükselti eğrileri siyah oluyor. Daha sonrasında başlangıç noktasından program üzerinden hesaplanan pergel aralığı ile bir çember çizilmesi gerekiyor. çizilen çemberde bir sonraki yükselti eğrisine çember ile kesişen nokta belirlenmesi gerekiyor. 2 adet nokta bulunuyorsa daha yakın olana bir doğru çekilip sonrakine geçilmesi gerekiyor. Gel gelelim daha en başında çuvallamış bulunmaktayım. Seçilen dosyadan yükselti eğrilerini seçtirerek nasıl çizdirebileceğimi bilmiyorum. Birkaç referans program bulmuş olsam da hala bu konuya bir çözüm bulamadım. örnek olarak photoshop ile yaptığım şu görsel gibi bir şey olacak ancak çemberler daha sonra silinmesi gerekecek.
  4. mcanatan

    Hiçbir Serverda Olmayan 3 Yeni Canavar

    ellerine sağlık başkan
  5. teşekkür ederim. elinize sağlık
  6. Şifrem genel kullandığım bir şifreydi kolay kolay bulunamayacak bir şifre ile değiştirdim. Uyarı için teşekkürler.
  7. ilginç bir bug buldum. client hatası mı bug mı diye irdelemek için bir çok farklı şekilde test ettim. ama bir şekilde moblara göre değiştiğini keşfettim. şimdi abbysde gloom hond lara ice 60-70-45 skilleri ile vurunca vurduğu her bir mob başına skill efectini akrakterin üstünde de başlatıyor. ekran görüntülerine bakarsanız zaten 4-5 mage aynı anda skill atmış gibi duruyor. http://prntscr.com/j2hce3 http://prntscr.com/j2hcqi ama aynı skilleri başka bir mobda denedim. delostaki solucanlar. cave leech. bu sefer skill efeckti düzgün çalıştı. bu neden olur nasıl düzelir hiç bir fikrim yok. http://prntscr.com/j2hdar http://prntscr.com/j2hdly -- mesaja ek olarak -- belirtmeyi unutmuşum skili herhangi bir moba yada npc ye değmeyecek şekilde atarsanız skill efeckti yine normal bir şekilde çalışıyor. @ fnesat12
  8. usko clienti kullandım. usko clientine verdiğiniz patchi attım sadece. -- mesaja ek olarak -- http://prntscr.com/j2397l
  9. Chaotic de gem kırdırdığında çoğu zaman item gözükmüyor. Envanterde boş yer var gibi gözüküp itemi veriyor. İtem kırdırma da büyük sorun var. Çoğu zaman item kırdırdığında çıkan itemler envanterdeki başka bir itemin yerine geçiyor ve o itemi siliyor. -- mesaja ek olarak -- 1m-100k-10k alış fiyatları hatalı 10m-1m-100k satış fiyatları hatalı -- mesaja ek olarak -- mage ice skilinin slow etkisi süresi çok kısa tahminen 1-1.5 sn -- mesaja ek olarak -- okçu 72 skili blow arrow çok uzak mesafelerden vuruyor -- mesaja ek olarak -- okçu 75 skilinde sorun var keyfi damage atıp atmama durumları oluyor
  10. ilk gözlemlerime göre yere vurma skilleri çalışmıyor (damage çok az) -- mesaja ek olarak -- ayrıca monster stone da moblardan düşmesi gereken itemler çıkmıyo ve sayaç gözükmüyor.
  11. mcanatan

    1298, 1397,1453,1534,1886 MyPacketTool

    Aklıma ilginç fikirler geldi bişeyler yapılır mı acaba bununla :D
  12. Gelip bakayım dedim ancak server kapalı sanırsam şuan?
  13. Teşekkürler
  14. Çok teşekkür ederim aradığım şeylerden biriydi
  15. mcanatan

    YowZa Server Kurulum Paketi

    Paylaşım için teşekkürler.
  16. mcanatan

    [1298] Kumar Sistemi

    Teşekkürler incelemek istiyorum.
  17. mcanatan

    mcanatan kimdir?

    Üye adı: mcanatan Ad ve Soyad: Utku Can CANATAn Ülke / Şehir: Afyon Hakkınızda kısa bilgi: 2012 senesinde afyonda harita mühendisliği bölümünü kazandım ve mezun olmamak üzere buraya yerleştim. E-posta adresiniz: [email protected] Skype adresiniz: Facebook adresiniz: fb.com/utkucc22 Referans olan üye: Ne kadar süredir Knight OnLine ile ilgileniyorsunuz?: 12-13 sene Aktif olarak Knight OnLine oynuyor musunuz?: Yes Oynuyorsanız, hangi sunucuda?: pvp Yetkinlikleriniz, becerileriniz nelerdir?: uyuşukluk,uyumak,oyun oynamak Önceki çalışmalarınız, referanslarınız: Ek Bilgiler: IP Address:: 78.163.196.219
×
×
  • Yeni Oluştur...