I translated a grayscale picture into a matrix that contains the intensity values of each pixel as integers. Now I'm looking for a way to sort the matrix by its pixel intensity values. Take the following matrix for example:
The output should be:
I couldn't get the desired result using numpy.sort, does anyone have an idea how to do this?
EDIT: Here's the code:
import numpy as np
import matplotlib.pyplot as plt
# Pillow library, to manipulate images
from PIL import Image
# reading image with PIL module
original = Image.open('original_reduced.png')
# converting it to a numpy array. numpy arrays are easier to manipulate
im_original = np.array(original)
#plt.imshow(im_original, cmap='gray', vmin=0, vmax=255)
# size of full image
im_original.shape
## size and cropping coordinates
s = 170
x, y = 85, 85
# crops image of his face
im = im_original[y:y+s, x:x+s]
## im_b should be "im" sorted
im_b = ???
#print(im)
#print(im_b)
plt.imshow(im_b, cmap='gray', vmin=0, vmax=255)
plt.show()


numpy.sort- so it's impossible to say why it doesn't for you, without seeing how you tried coding it)Image.fromarray(sorted_image)