private void ExportHogToCsv(StreamWriter file, List <FileInfo> imagesOnDisk, HogImageFeatures hogFeature) { foreach (var image in imagesOnDisk) { using (Image <Bgr, Byte> tempImage = new Image <Bgr, Byte>(image.FullName)) { int offsetX = 0; int offsetY = 0; int width = tempImage.Width; int height = tempImage.Height; while ((offsetY + 128) <= height) { while ((offsetX + 64) <= width) { hogFeature.Compute(tempImage, new Rectangle(offsetX, offsetY, 64, 128)); var descriptor = string.Join(",", hogFeature.DescriptorArray); file.WriteLine(descriptor); offsetX += 32; } offsetY += 64; } } } }
private void exportHogFeaturesToolStripMenuItem_Click(object sender, EventArgs e) { this.folderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer; DialogResult dialogResult = this.folderBrowserDialog.ShowDialog(); if (dialogResult == DialogResult.OK) { string root = folderBrowserDialog.SelectedPath; HogImageFeatures hogFeature = new HogImageFeatures(); DirectoryInfo trainPosDir = new DirectoryInfo(root + @"\Train\pos"); DirectoryInfo trainNegDir = new DirectoryInfo(root + @"\Train\neg"); DirectoryInfo testPosDir = new DirectoryInfo(root + @"\Test\pos"); DirectoryInfo testNegDir = new DirectoryInfo(root + @"\Test\neg"); var imagesOnDisk = FileHelper.GetImages(trainPosDir); using (StreamWriter file = new StreamWriter(root + @"\train_pos.csv")) { ExportCrop96x160HogToCsv(file, imagesOnDisk, hogFeature); } imagesOnDisk = FileHelper.GetImages(trainNegDir); using (StreamWriter file = new StreamWriter(root + @"\train_neg.csv")) { ExportHogToCsv(file, imagesOnDisk, hogFeature); } imagesOnDisk = FileHelper.GetImages(testPosDir); using (StreamWriter file = new StreamWriter(root + @"\test_pos.csv")) { ExportCrop70x134HogToCsv(file, imagesOnDisk, hogFeature); } imagesOnDisk = FileHelper.GetImages(testNegDir); using (StreamWriter file = new StreamWriter(root + @"\test_neg.csv")) { ExportHogToCsv(file, imagesOnDisk, hogFeature); } } }
private void ExportCrop70x134HogToCsv(StreamWriter file, List <FileInfo> imagesOnDisk, HogImageFeatures hogFeature) { Rectangle roi = new Rectangle(3, 3, 64, 128); foreach (var image in imagesOnDisk) { using (Image <Bgr, Byte> tempImage = new Image <Bgr, Byte>(image.FullName)) { hogFeature.Compute(tempImage, roi); var descriptor = string.Join(",", hogFeature.DescriptorArray); file.WriteLine(descriptor); } } }