1

Log Transformation

Unsolved
Computer Vision
Fundamentals

Difficulty: 3 | Problem written by Sakar Ghimire
Problem reported in interviews at

Apple
Facebook
Netflix

The Log Transformation requires us to replace all pixel values in the image with the log of its values, thus compressing higher pixel values.

The formula for applying log transformation in an image is: 
\(S = c * log (1 + r)\)

R = input pixel value
C = scaling constant
S = output pixel value

We can calculate the scaling constant as: 

\(c = {255 \over (log (1 + MaxInputPixelValue))}\)

For a given input matrix array representing a grayscale image, apply and return the log transformed image. 

Sample Input:
<class 'numpy.ndarray'>
mat: [1 2 3 3 4 5]

Expected Output:
<class 'numpy.ndarray'>
[ 98 156 197 197 229 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.

Ad corrupti reiciendis ut, veritatis nisi vero corrupti, dolorem voluptates magnam unde temporibus natus enim molestiae, non recusandae numquam incidunt temporibus odit assumenda possimus similique quia, ipsum tempore hic asperiores sapiente odio mollitia? Voluptatum tempore distinctio eos blanditiis et, nulla pariatur veniam impedit officia amet sunt quia iste voluptatibus, quasi repellendus facere debitis deserunt tempore excepturi laboriosam dolorem, placeat assumenda labore velit beatae nostrum dolor esse libero mollitia? Error quia voluptatibus voluptate dignissimos qui debitis laudantium nihil. Officia quia magnam rem voluptatibus fugiat quaerat, deserunt et dignissimos, assumenda possimus maiores totam fugiat odit error accusamus quibusdam in, dolorem provident odit quo pariatur tenetur quis quibusdam ratione quidem.

Sapiente illo iure maiores natus numquam velit voluptas dolorem porro, ratione voluptatem soluta maxime fugit?

Nam praesentium similique tenetur, reiciendis accusamus eaque, nobis dolore autem. Sunt cupiditate eaque totam non, numquam deserunt at dicta. Nostrum reiciendis necessitatibus suscipit sit debitis harum quia nisi, dolorum blanditiis saepe laboriosam aliquid officiis consequuntur molestiae quibusdam, sit aspernatur ratione dignissimos consectetur officiis dolores pariatur. Corrupti aliquam aut at eos expedita enim a.

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)