1

Color Quantization

Unsolved
Computer Vision

Difficulty: 4 | Problem written by mesakarghm
The aim of color clustering is to produce a small set of representative colors which capture the color  properties of an image. Using the small set of colors found by clustering, a quantization process can be applied to the image to find a new version of the image that has been "simplified". 

Write a function color_clustering(img) such that given an array representing an image, it clusters it into 3 color range, quantizes the image pixels accroding to the clusters and returns the resultant image. 

Note: the functions scipy.cluster.vq.kmeans and scipy.cluster.vq.vq can be useful here.

Sample Input:
<class 'numpy.ndarray'>
img: [[[ 11 22 33] [ 44 55 66]] [[ 77 88 99] [110 111 112]] [[113 114 151] [ 16 17 18]]]

Expected Output:
<class 'numpy.ndarray'>
[[[ 13 19 25] [ 44 55 66]] [[100 104 120] [100 104 120]] [[100 104 120] [ 13 19 25]]]

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Repellat placeat molestias necessitatibus ipsum quo amet accusamus itaque modi, eveniet nulla vero illo temporibus eos, ea soluta rem temporibus sed dolorum obcaecati architecto dolores?

Debitis quisquam enim facilis repudiandae eum corrupti voluptas, ex blanditiis quibusdam nostrum, repellat tenetur dolores nihil quasi ducimus vero veniam expedita, animi voluptatibus praesentium unde sequi dolore perspiciatis consectetur autem rem ex, omnis ex consequatur laborum sit alias nesciunt rem asperiores reiciendis? Quia dolores reprehenderit earum aliquid sunt voluptatem non corrupti, delectus assumenda soluta qui dolore molestiae quos fuga quidem fugiat, labore dolorum doloribus accusamus iure perspiciatis repellat alias voluptatibus consectetur possimus, iste facilis debitis voluptatum earum corporis in asperiores provident dolorem a quo? Vero eaque nulla fuga, sit asperiores sint fugit expedita, iusto ipsam praesentium distinctio aliquam eum recusandae nesciunt fuga quasi consectetur itaque.

Fugit exercitationem itaque aperiam laboriosam corporis quam dolorum quos perferendis. Repellendus assumenda dolores iste vero ipsam numquam voluptatem modi facilis alias incidunt, quasi molestiae aliquam, sunt voluptas fugiat aperiam et ratione culpa aliquid, iste non voluptatibus quidem enim iusto aperiam a omnis praesentium labore nisi? Inventore fuga expedita?

This is a premium feature.
To access this and other such features, click on upgrade below.

Ready.

Input Test Case

Please enter only one test case at a time
numpy has been already imported as np (import numpy as np)