将像素图像写入CSV文件

问题描述 投票:0回答:1

我正在学习图像处理而且我被卡住了。我想读取一个图像并将字节写入CSV文件,由;分隔。我将图像转换为字节数组然后写入。但似乎数组不包含导致file.WriteLine()错误的所有图像信息。

这是C#中的代码:

// Creación del objeto imagen
Image image = Image.FromFile(@"D:/Users/Sean Sabe/Documents/ImageProcessing/Images/cato.jpg");

// Mostrar datos de la imagen
Console.WriteLine("Image Size: " + image.PhysicalDimension + " Depth: " + image.PixelFormat);

// Convertir la imagen en array de bytes
ImageConverter converter = new ImageConverter();
byte[] bytes = (byte[])converter.ConvertTo(image, typeof(byte[]));

// Escribir la matriz con los bytes
using (StreamWriter file = new StreamWriter(@"D:/Users/Sean Sabe/Documents/ImageProcessing/cato.csv"))
{
    for(int y = 0; y < image.Height; y++)
    {
        for(int x = 0; x < image.Width; x++)
        {
            file.WriteLine(String.Join(";", bytes[x + (y * image.Width)]));
        }
        file.WriteLine("\n");
    }
}

cato.csv中写的内容如下:

255
216
255
224
0
16
74
.
.
.

依此类推,直到A栏中的行37132

c# arrays csv image-processing byte
1个回答
1
投票

一种缓慢但简单有效的方法是使用Bitmap而不是Image(因为你总是使用.jpg位图):

Bitmap image = Image.FromFile(@"D:/Users/Sean Sabe/Documents/ImageProcessing/Images/cato.jpg") as Bitmap;

现在,您可以获得图像每个像素的颜色

Color c = image.GetPixel(x, y);

之后,您可以将颜色的R,G和B值写入CSV文件。

© www.soinside.com 2019 - 2024. All rights reserved.