Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

Ask Computer Engineering Expert

E27: Computer Vision Spring 2016 - HOMEWORK 3

1. Image warping and invertible transformations

Given a digital image, and an invertible transformation H˜ of the form

p˜' ≡ H˜p˜

we would like to compute the warped image whereby each point p˜ in the original image is transformed to its new location p˜'. This type of image warping is exactly what the cv2.warpPerspective function does, for example.

We could envision a somewhat straightforward algorithm for performing this image warp: for each location p˜ in the original image, compute the nearest pixel location of the transformed point p˜' in the warped image, and copy the color found in p˜ to the warped image at location p˜'.

However, the vastly preferable algorithm is to loop over the destination pixels p˜' in the warp image, and use the inverse transformation H˜-1 to identify the nearest pixel p˜ in the source image and copy the color from that source pixel to the destination.

What is the difference between the two approaches? Why is the second one preferable?

2. Convolution vs. Correlation

Given two real-valued functions f and g of one variable, the convolution of f and g is defined as:

(f * g)(x) = -∞ f(x - u) g(u) du

The correlation of f and g is defined similarly:

(f ⊗ g)(x) =  -∞f(x + u) g(u) du

a. How are convolution and correlation related? Given any functions f(x) and g(x), define a function h(x) such that

f * g = f ⊗ h

What is h(x) in terms of g(x)?

b. Filtering confusion. Although we have defined filtering operations in class in terms of convolution, many software packages (including OpenCV) define filtering in terms of correlation instead. As we will see, it doesn't make a huge difference.

Imagine that g(x) is a symmetric (even) function, such as a Gaussian, where

G(x) = g(-x)

Based upon your answer above, can you tell the difference between f * g and f ⊗ g? Why or why not?

Next, imagine that g(x) is antisymmetric (odd), where

G(x) = -g(-x)

Now can you tell the difference? What is the mathematical relationship between f * g and f ⊗ g in this case?

3. Image derivatives and separability

a. The Gaussian blur operation is seperable. Let I(x, y) be a continuous function specifiying image intensity at the point (x, y), and let G(x, y) be a Gaussian function:

G(x, y) = 1/Z2exp(-(x2+y2/2σ2))

where Z2 is a normalizing constant that makes G integrate (or sum, in the discrete domain) to 1. Show that the convolution of I with G can be represented as convolution with two functions gx and gy that depend only on the x and y coordinates respectively.

Remember, the discrete convolution I * G can be expressed as the sum

(I * G)(x, y) = ∑uvI(x - u, y - v)G(u, v)

What are the functions gx(x) and gy(y) such that I * G = I * gx * gy?

b. The partial derivative of a Gaussian is separable. Let G(x, y) be defined as the derivative of the Gaussian function with respect to x:

G(x, y) = (∂/∂x)G(x, y)

show that the convolution (I * G) can also be represented as a convolution with two functions that depend only on x and y.

c. Why do we care about separability? Say we are convolving a w x h image I with an arbitrary square n x n kernel G. How many operations (in terms of big-O notation) does it take to evaluate (I * G) for each pixel in I? How many operations if G is separable and we can evaluate the convolution as ((I * gx) * gy), where gx and gy are both kernels with size n? In short, why do we prefer to use separable convolutions?

4. Non-linear filtering

The erosion, dilation, opening and closing operators that we discussed in class are sometimes considered "non-linear filters". How are they similar to convolutions, and how are they different? What are some other examples of non-linear filters and their uses?

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M91844882

Have any Question?


Related Questions in Computer Engineering

Questions 1 for the set of 1 4 5 16 17 21 of keys draw

Questions: 1. For the set of {1, 4, 5, 16, 17, 21} of keys, draw binary search trees of heights 2, 3, 4, 5, and 6. 2. Use the Binary Search Tree class to Write the TREE-PREDECESSOR procedure. 3. Show that there are at mo ...

Construct a frequency distribution for the number of

Construct a frequency distribution for the number of different residences occu-pied by graduating seniors during their college career, namely 1, 4, 2, 3, 3, 1, 6, 7, 4, 3, 3, 9, 2, 4, 2, 2, 3, 2, 3, 4, 4, 2, 3, 3, 5

Restaurant management database project the restaurant

Restaurant Management Database Project : The restaurant maintains the catalog for the list of food and beverage items that it provides. Apart from providing food facility at their own premises, the restaurant takes order ...

How do you apply the five components of the information

How do you apply the five components of the information systems to an information systems application like "online bill pay" system offered by many banks.

Assume that the pizza market consists of two firms conans

Assume that the pizza market consists of two firms, Conan's and Pizza Hut. The price of a Conan pizza is denoted by Pc and the price of a Pizza Hut Pizza is P h.  Both sellers have a marginal cost of $5 for another pizza ...

The national sporting goods association nsga conducted a

The National Sporting Goods Association (NSGA) conducted a survey of the ages of individuals that purchased skateboarding footwear. The ages of this survey are summarized in the following relative frequency distribution. ...

In my sample database i need to use select statements to

In my sample database I need to use SELECT statements to find the following: 1) Find the full names of supervisors together with the total number of employees directly supervised by each one of them. 2) Find the full nam ...

Question suppose that in the definition of an euler cycle

Question : Suppose that in the definition of an Euler cycle, we drop the seemingly superfluous requirement that the Euler cycle visit every vertex and require only that the cycle include every edge. Show that now the the ...

Create a class named horse that contains data fields for

Create a class named Horse that contains data fields for the name, color, and birth year. Include get and set methods for these fields. Next, create a subclass named RaceHorse, which contains an additional field that hol ...

Introduction to software developmentmenu-driven

Introduction to Software Development Menu-Driven Programs TASKS: Language translator. Design a program that display the following menu: Select a language and I will say Good Morning English Italian Spanish German End the ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As