0

Grey Level Slicing

Unsolved
Computer Vision

Difficulty: 2 | Problem written by mesakarghm
Problem reported in interviews at

Apple
Facebook
Google
Netflix

Grey level slicing involves changing each pixel in an input image using the following formula: 

\(s = L - 1 \> for \> { a < r < b }\)

\(s = r \> otherwise\)

L is the total number of pixel intensities in the color space
a and b define a specific range of grey levels
r is the existing pixel value
s is the final pixel value

Write a function grey_level_slicing(img) which takes as input a grayscale image (represented as 2D NumPy array), performs grey level slicing on it, and returns the resultant image (2D NumPy array).

Use 100 and 180, respecitvely, for a and b. The resultant image should have the same shape as the input image. 

Sample Input:
<class 'numpy.ndarray'>
img: [[ 1 7 119 13 12] [ 11 21 61 81 91] [ 5 66 6 5 5] [ 5 66 166 145 155] [ 5 66 136 145 155]]

Expected Output:
<class 'numpy.ndarray'>
[[ 1 7 255 13 12] [ 11 21 61 81 91] [ 5 66 6 5 5] [ 5 66 255 255 255] [ 5 66 255 255 255]]

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.

Necessitatibus mollitia corporis nulla eius et alias nihil illum dolor non, molestiae nobis tempora nihil nesciunt impedit nemo vel cupiditate dolor error quis, non veritatis necessitatibus nisi provident natus quod consequuntur?

Et consequuntur expedita accusamus at ullam enim vero fuga officiis, inventore nobis cumque nemo vel fugiat omnis quidem tempore esse quod, sapiente ipsa modi ut, suscipit quas inventore? Aliquam mollitia illum aperiam quas doloremque natus similique facilis, minus nostrum at incidunt non rerum reiciendis animi reprehenderit dolores consectetur eum. Aperiam iusto nam exercitationem animi? Soluta placeat iusto vero tempore repellat earum adipisci facere modi similique, nisi error recusandae nulla sapiente reprehenderit eaque aliquid, libero sunt eius enim, unde nesciunt maiores eligendi tenetur, dignissimos voluptate iusto quasi?

Fugiat adipisci et corporis cumque dolores ut sunt impedit quia repellendus error, corporis necessitatibus saepe. Nesciunt ipsa assumenda aut ducimus quos dolorem ad exercitationem culpa voluptates explicabo? Aliquid ea omnis illum architecto quos obcaecati laudantium, sint quae perspiciatis quam corporis laudantium, odit ex aliquam illo minus aperiam et ipsum minima consequuntur, fugit distinctio provident voluptas cum numquam aspernatur tempore nemo in quas, corrupti ea aperiam odio quisquam? Inventore hic facere eum veniam autem nesciunt quod eius totam excepturi quia?

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)