Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tut] Python Convert Image (JPG, PNG) to CSV
1
Python Convert Image (JPG, PNG) to CSV

5/5 – (1 vote)

Given an image as a
Code:
.png
or
Code:
.jpeg
file. How to convert it to a CSV file in Python?

Example image:

[Image: c.jpg]

Convert the image to a CSV using the following steps:

  1. Read the image into a
    Code:
    PIL.Image
    object.

  2. Convert the
    Code:
    PIL.Image
    object to a 3D NumPy array with the dimensions rows, columns, and RGB values.

  3. Convert the 3D NumPy array to a 2D list of lists by collapsing the RGB values into a single value (e.g., a string representation).

  4. Write the 2D list of lists to a CSV using normal file I/O in Python.

Here’s the code that applies these four steps, assuming the image is stored in a file named
Code:
'c++.jpg'
:

Code:
from PIL import Image import numpy as np # 1. Read image img = Image.open('c++.jpg') # 2. Convert image to NumPy array arr = np.asarray(img) print(arr.shape) # (771, 771, 3) # 3. Convert 3D array to 2D list of lists lst = [] for row in arr: tmp = [] for col in row: tmp.append(str(col)) lst.append(tmp) # 4. Save list of lists to CSV with open('my_file.csv', 'w') as f: for row in lst: f.write(','.join(row) + '\n')

Note that the resulting CSV file looks like this with super long rows.

[Image: image-4.png]

Each CSV cell (column) value is a representation of the RGB value at that specific pixel. For example,
Code:
[255 255 255]
represents the color white at that pixel.

For more information and some background on file I/O, check out our detailed tutorial on converting a list of lists to a CSV:

[Image: 1f30d.png] Related Tutorial: How to Convert a List to a CSV File in Python [5 Ways]
Reply

Users browsing this thread:
1 Guest(s)


Forum Jump: