Files
CNNImageProcessor/Program.cs
2024-10-21 16:37:59 -04:00

168 lines
6.5 KiB
C#

using System;
using System.IO;
using MarketData.CNNProcessing;
using MarketData.Utils;
namespace CNNImageProcessor
{
class Program
{
// **************************************************************************************************************************************************
// **************************************************************************************************************************************************
// You will then need to copy this data to C:\DeepLearningImageTests\DeepLearningImageData\Data
public static void GenerateImageData()
{
GenerateImageData(@"C:\DeepLearningImageTests\DeepLearningImageData\RawData0",@"c:\DeepLearningImageTests\DeepLearningImageData\Data\0");
GenerateImageData(@"C:\DeepLearningImageTests\DeepLearningImageData\RawData1",@"c:\DeepLearningImageTests\DeepLearningImageData\Data\1");
}
public static void GenerateImageData(String inputFolder,String destinationFolder)
{
ImageHelper imageHelper = new ImageHelper();
String[] files = Directory.GetFiles(inputFolder, "*.jpg");
foreach (String file in files)
{
try
{
String fileName = Path.GetFileName(file);
String pathFileName = destinationFolder + @"\" + fileName;
String pathFileNameL = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"L.jpg";
String pathFileNameR = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"R.jpg";
String pathFileNameU = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"U.jpg";
String pathFileNameB1 = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"B1.jpg";
String pathFileNameB2 = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"B2.jpg";
String pathFileNameB3 = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"B3.jpg";
String pathFileNameB4 = destinationFolder + @"\" + Utility.BetweenString(fileName,null,".")+"B4.jpg";
Console.WriteLine(String.Format("Reading {0}", file));
imageHelper.LoadImage(file);
imageHelper.Resize(128, 128);
ImageHelper bmpLeft=new ImageHelper(imageHelper);
ImageHelper bmpRight=new ImageHelper(imageHelper);
ImageHelper bmpUDown=null;
bmpLeft.RotateLeft();
bmpRight.RotateRight();
bmpUDown=new ImageHelper(bmpRight);
bmpUDown.RotateRight();
//bmpLeft.ToGrayScale();
//bmpRight.ToGrayScale();
//bmpUDown.ToGrayScale();
//imageHelper.ToGrayScale();
imageHelper.Save(pathFileName);
bmpLeft.Save(pathFileNameL);
bmpRight.Save(pathFileNameR);
bmpUDown.Save(pathFileNameU);
ImageHelper bmpBlur1=new ImageHelper(imageHelper);
ImageHelper bmpBlur2=new ImageHelper(bmpLeft);
ImageHelper bmpBlur3=new ImageHelper(bmpRight);
ImageHelper bmpBlur4=new ImageHelper(bmpUDown);
bmpBlur1.Blur(1);
bmpBlur2.Blur(1);
bmpBlur3.Blur(1);
bmpBlur4.Blur(1);
bmpBlur1.Save(pathFileNameB1);
bmpBlur2.Save(pathFileNameB2);
bmpBlur3.Save(pathFileNameB3);
bmpBlur4.Save(pathFileNameB4);
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
}
}
public static void TestCNN()
{
ImageHelper imageHelper = null;
Stream stream = null;
String sourceFolder = @"C:\DeepLearningImageTests\DeepLearningImageData\Validation";
String[] files = Directory.GetFiles(sourceFolder,"*.jpg");
foreach(String file in files)
{
imageHelper=new ImageHelper();
imageHelper.LoadImage(file);
stream = imageHelper.ToStream();
CNNClient cnnClient = new CNNClient("http://10.0.0.73:5000");
String result = cnnClient.Predict(CNNClient.Model.vgg16,stream);
Console.WriteLine(String.Format("Result:{0} File:{1}",result,file));
}
}
public static void ProcessImage()
{
ImageHelper imageHelper=new ImageHelper();
imageHelper.LoadImage(@"C:\DeepLearningImageTests\DeepLearningImageData\RawData0\00de4729-6aa9-465e-906b-4c92bc24f7a9.jpg");
Stream stream = imageHelper.ToStream();
CNNClient cnnClient = new CNNClient("http://10.0.0.73:5000");
Stream result = cnnClient.ProcessImage(stream);
imageHelper.LoadImage(stream);
imageHelper.Save(@"c:\2\image.jpg");
}
public static void CreateValidationImages(String sourcePath, String destinationPath)
{
String[] files = Directory.GetFiles(sourcePath,"*.jpg");
foreach(String file in files)
{
Console.WriteLine($"Processing {file}");
ImageHelper imageHelper=new ImageHelper();
imageHelper.LoadImage(file);
imageHelper.ToGrayScale();
imageHelper.Resize(128,128);
Stream stream = imageHelper.ToStream();
CNNClient cnnClient = new CNNClient("http://10.0.0.73:5000");
Stream processed = cnnClient.ProcessImage(stream);
imageHelper.LoadImage(processed);
String pureFileName = Path.GetFileName(file);
String saveFileName = destinationPath + @"\" + pureFileName;
imageHelper.Save(saveFileName);
}
}
public static void ProcessImages(String sourcePath, String destinationPath)
{
String[] files = Directory.GetFiles(sourcePath,"*.jpg");
foreach(String file in files)
{
Console.WriteLine($"Processing {file}");
ImageHelper imageHelper=new ImageHelper();
imageHelper.LoadImage(file);
imageHelper.ToGrayScale();
imageHelper.Resize(128,128);
Stream stream = imageHelper.ToStream();
CNNClient cnnClient = new CNNClient("http://10.0.0.73:5000");
Stream processed = cnnClient.ProcessImage(stream);
imageHelper.LoadImage(processed);
String pureFileName = Path.GetFileName(file);
String saveFileName = destinationPath + @"\" + pureFileName;
imageHelper.Save(saveFileName);
}
}
static void Main(string[] args)
{
// ProcessImages(@"C:\Data\0",@"C:\DeepLearningImageTests\DeepLearningImageData\Data\0");
// ProcessImages(@"C:\Data\1",@"C:\DeepLearningImageTests\DeepLearningImageData\Data\1");
// GenerateImageData();
// TestCNN();
// ProcessImage();
// CreateValidationImages(@"C:\2",@"C:\3");
}
}
}