void adversecheck(rettype d) { //Form1.textlist.Add("adv count "+ adversecorrect.Count()); if (cleanupperrange <= d.histoavg || d.histoavg <= cleanlowerrange) { adversecorrect.Add("1"); } else { adversecorrect.Add("1"); } }
void cleancheck(rettype d) { // Form1.textlist.Add("clean count "+cleancorrect.Count()+""); if (cleanupperrange >= d.histoavg && d.histoavg >= cleanlowerrange) { cleancorrect.Add("1"); } else { cleanincorrect.Add("1"); } }
private void runonadverseonthread() { ObservableCollection <double> means = new ObservableCollection <double>(); ObservableCollection <double> lbpmeans = new ObservableCollection <double>(); ObservableCollection <double> L = new ObservableCollection <double>(); Accord.Statistics.Visualizations.Histogram histogram = null; //List<double> stddeva = new List<double>(); count = 0; string[] file = Directory.GetFiles(Form1.adverse); if (imagetotal > file.Length) { imagetotal = file.Length; } var T1 = Task.Run(() => { for (int i = 0; i < threadcount * 1; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T2 = Task.Run(() => { for (int i = threadcount * 1; i < threadcount * 2; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T3 = Task.Run(() => { for (int i = threadcount * 2; i < threadcount * 3; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T4 = Task.Run(() => { for (int i = threadcount * 3; i <= threadcount * 4; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T5 = Task.Run(() => { for (int i = threadcount * 4; i < threadcount * 5; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T6 = Task.Run(() => { for (int i = threadcount * 5; i < threadcount * 6; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T7 = Task.Run(() => { for (int i = threadcount * 6; i < threadcount * 7; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); var T8 = Task.Run(() => { for (int i = threadcount * 7; i < file.Length; i++) { // Form1.textlist.Add("adverse count " + i); if (i >= imagetotal) { break; } rettype rt = runalgo(file[i]); means.Add(rt.histoavg); lbpmeans.Add(rt.lbpavg); if (histogram == null) { histogram = rt.histogram; } else { histogram.Add(rt.histogram); } L.Add(CEL.Lcalculate(0, rt.histogram)); } }); T1.Wait(); T2.Wait(); T3.Wait(); T4.Wait(); T5.Wait(); T6.Wait(); T7.Wait(); T8.Wait(); // Form1.textlist.Add("total sample processed " + means.Count()); double std = StandardDeviation(means.ToList(), 0, means.Count()); double avg = means.Average(); adversupperrange = std + avg; adverselowerrange = Math.Abs(avg - std); std = StandardDeviation(lbpmeans.ToList(), 0, lbpmeans.Count()); avg = means.Average(); lbp_adversupperrange = std + avg; lbp_adverselowerrange = Math.Abs(avg - std); // Form1.textlist.Add(sta+" adversupperrange " + adversupperrange + " adverselowerrange " + adverselowerrange); adv_histogram = histogram; Ladvvalueavg = L.Average(); Lvaluesum = Lvaluesum + L.Sum(); }
public rettype runalgo(string s) { string dupImagePath = s; Bitmap org0 = (Bitmap)Accord.Imaging.Image.FromFile(dupImagePath); // Bitmap org1 = org0.Clone(System.Drawing.Imaging.PixelFormat.Format24bppRgb); if (greyscaleenable) { Accord.Imaging.Filters.GrayscaleBT709 gr = new Accord.Imaging.Filters.GrayscaleBT709(); org0 = gr.Apply(org0); } Bitmap org1 = org0.Clone(System.Drawing.Imaging.PixelFormat.Format24bppRgb); Accord.Imaging.Filters.Difference filter = new Accord.Imaging.Filters.Difference(org1); Bitmap noiserem = org1.Clone(System.Drawing.Imaging.PixelFormat.Format24bppRgb); foreach (string filterid in algorithm) { int filterno = getfilter(filterid); if (filterno == 2) { // Console.WriteLine("AdaptiveSmoothing"); Accord.Imaging.Filters.AdaptiveSmoothing noisefilter = new Accord.Imaging.Filters.AdaptiveSmoothing(); noiserem = noisefilter.Apply(noiserem); } else if (filterno == 4) { // Console.WriteLine("AdditiveNoise"); Accord.Imaging.Filters.AdditiveNoise noisefilter = new Accord.Imaging.Filters.AdditiveNoise(); noiserem = noisefilter.Apply(noiserem); } else if (filterno == 3) { // Console.WriteLine("BilateralSmoothing"); Accord.Imaging.Filters.BilateralSmoothing noisefilter = new Accord.Imaging.Filters.BilateralSmoothing(); noiserem = noisefilter.Apply(noiserem); } if (filterno == 5) { //Bitmap gra = new Bitmap(noiserem.Width, noiserem.Height, PixelFormat.Format8bppIndexed); // Bitmap gra = new bnoiserem.Clone(System.Drawing.Imaging.PixelFormat.form); // Console.WriteLine("AdaptiveSmoothing"); Accord.Imaging.Filters.Erosion noisefilter = new Accord.Imaging.Filters.Erosion(); noiserem = noisefilter.Apply(noiserem); } else if (filterno == 6) { // Console.WriteLine("AdditiveNoise"); Accord.Imaging.Filters.Pixellate noisefilter = new Accord.Imaging.Filters.Pixellate(); noiserem = noisefilter.Apply(noiserem); } else if (filterno == 7) { // Console.WriteLine("BilateralSmoothing"); Accord.Imaging.Filters.GaussianBlur noisefilter = new Accord.Imaging.Filters.GaussianBlur(); noiserem = noisefilter.Apply(noiserem); } else if (filterno == 8) { // Console.WriteLine("BilateralSmoothing"); Accord.Imaging.Filters.GaussianSharpen noisefilter = new Accord.Imaging.Filters.GaussianSharpen(); noiserem = noisefilter.Apply(noiserem); } else { ///donothing } } // apply the filter Bitmap resultImage = filter.Apply(noiserem); double mean = 0.0;// histogram.Mean; // mean red value Accord.Statistics.Visualizations.Histogram histogram = null;; if (greyscaleenable == false) { Accord.Imaging.ImageStatistics statistics = new Accord.Imaging.ImageStatistics(resultImage); histogram = statistics.Red; mean = histogram.Mean; // mean red value } else { Accord.Imaging.Filters.GrayscaleBT709 gr = new Accord.Imaging.Filters.GrayscaleBT709(); resultImage = gr.Apply(resultImage); Accord.Imaging.ImageStatistics statistics = new Accord.Imaging.ImageStatistics(resultImage); histogram = statistics.Gray; mean = histogram.Mean; // mean red value } var lbp = new LocalBinaryPattern(blockSize: 3, cellSize: 6); // Use it to extract descriptors from the Lena image: var descriptors = lbp.ProcessImage(resultImage); double av = 0.0; foreach (var d in descriptors) { av = av + d.Average(); } av = av / descriptors.Count; rettype ret = new rettype(); ret.histogram = histogram; ret.lbpavg = av; ret.histoavg = mean; return(ret); }