将像素图像写入CSV文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将像素图像写入CSV文件相关的知识,希望对你有一定的参考价值。

我正在学习图像处理而且我被卡住了。我想读取一个图像并将字节写入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("
");
    }
}

cato.csv中写的内容如下:

255
216
255
224
0
16
74
.
.
.

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

答案

一种缓慢但简单有效的方法是使用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文件。

以上是关于将像素图像写入CSV文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将vb中的数据写入csv文件?

如何从图像中提取 (x, y) 坐标并写入 CSV 文件?

如何标记从卷积神经网络的分割算法生成的图像片段?

将图像数据写入文本文件以创建 BMP 文件

从每个键具有多个值的字典中将数据写入 csv

如何优化图像像素化程序