CMSC 426 Problem Set 1: 3D Point Projection and Image Difference - Prof. David Jacobs, Assignments of Computer Science

A problem set for a computer graphics course, focusing on 3d point projection using matlab. Students are required to write functions for perspective and weak perspective projection, test the functions, and analyze the image difference between the two. They will also explore the effect of distance on the accuracy of weak perspective projection. Additionally, there is a pen and paper exercise on perspective and a reflection exercise.

Typology: Assignments

Pre 2010

Uploaded on 02/13/2009

koofers-user-cwr
koofers-user-cwr 🇺🇸

10 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CMSC 426
Problem Set 1
Due: Tuesday, February 18, 2003, 11:00, at the start of class.
Readings:
Forsyth & Ponce: Chapter 1 (you need not follow all equations in 1.2), Chapter 4 (all),
Chapter 5 (sections 5.1, 5.2, and 5.3).
The programming in this assignment may take a while. Please don’t wait till the night
before, especially if you’re unfamiliar with Matlab, and may need to ask questions.
1. Programming: The goal of this problem is to get familiar with some Matlab
basics and some methods of projection. You will construct a simple object
consisting of some 3D points. You will then write code to project these points
onto an image using two methods, perspective and weak perspective projection.
You will then judge the accuracy of the weak perspective approximation to true
perspective.
You will need to turn in a hardcopy of all code, plots, and a write-up of your
experiment. You will also need to email files containing all Matlab code to the
TA (Hyoungjune Yi [email protected]). We will leave to you many specific
decisions about how to set up this experiment. Read through the whole
assignment before starting, and think through your decisions. In addition to your
write-up, all code should be documented.
a. Construct an object: Write a function to generate a matrix representing four 3D
points with coordinates: (-1, 0, 1), (1, 0, 4), (0, 1, 3), (0, -1, 2). We will call this
object O.
b. Image the object: Imagine that you have a perspective camera with a focal point
at (0,0,0), a focal length of 1, and an image plane equal to the z=1 plane. Write a
function that will take as input a set of 3D points, and return as output a set of 2D
points that are the projection of the 3D points with this perspective camera.
c. Write a second function to project the points using weak perspective
projection. Note that the scale factor should be based on the average distance to
all points.
d. Test these functions. O + (0,0,1) denotes object O translated by one unit in the z
direction. Print out a figure showing the 2D projection of O and O + (0,0,1) using
weak perspective and perspective projection. The functions: figure, plot and
print may be useful. Try, for example, plot(5,5,'o','LineWidth', 6), to get
an idea of how to display a point in a figure so that it’s easily visible. The
pf3

Partial preview of the text

Download CMSC 426 Problem Set 1: 3D Point Projection and Image Difference - Prof. David Jacobs and more Assignments Computer Science in PDF only on Docsity!

CMSC 426

Problem Set 1

Due: Tuesday, February 18, 2003, 11:00, at the start of class. Readings: Forsyth & Ponce: Chapter 1 (you need not follow all equations in 1.2), Chapter 4 (all), Chapter 5 (sections 5.1, 5.2, and 5.3). The programming in this assignment may take a while. Please don’t wait till the night before, especially if you’re unfamiliar with Matlab, and may need to ask questions.

  1. Programming: The goal of this problem is to get familiar with some Matlab basics and some methods of projection. You will construct a simple object consisting of some 3D points. You will then write code to project these points onto an image using two methods, perspective and weak perspective projection. You will then judge the accuracy of the weak perspective approximation to true perspective. You will need to turn in a hardcopy of all code, plots, and a write-up of your experiment. You will also need to email files containing all Matlab code to the TA (Hyoungjune Yi [email protected]). We will leave to you many specific decisions about how to set up this experiment. Read through the whole assignment before starting, and think through your decisions. In addition to your write-up, all code should be documented. a. Construct an object: Write a function to generate a matrix representing four 3D points with coordinates: (-1, 0, 1), (1, 0, 4), (0, 1, 3), (0, -1, 2). We will call this object O. b. Image the object: Imagine that you have a perspective camera with a focal point at (0,0,0), a focal length of 1, and an image plane equal to the z=1 plane. Write a function that will take as input a set of 3D points, and return as output a set of 2D points that are the projection of the 3D points with this perspective camera. c. Write a second function to project the points using weak perspective projection. Note that the scale factor should be based on the average distance to all points. d. Test these functions. O + (0,0,1) denotes object O translated by one unit in the z direction. Print out a figure showing the 2D projection of O and O + (0,0,1) using weak perspective and perspective projection. The functions: figure, plot and print may be useful. Try, for example, plot(5,5,'o','LineWidth', 6), to get an idea of how to display a point in a figure so that it’s easily visible. The

function axis may also be helpful. You should show projections of different objects or different projections of the same object by using different shapes or colors with plot. Label everything. e. Image Difference: Write a function to compute the sum of square differences (SSD) between two sets of image points. That is, for point sets: ( p 1 , , p n ), ( q 1 ,, qn ) compute: 2 1

  n i p i qi. Test it on the images generated in parts b and c. f. Write a function that takes an object and translates it further and further away from the camera. Decide how to measure the distance from the object to the camera and document your choice. For ten different distances, compute the SSD between O ’s projection using perspective and its projection using weak perspective. Make a plot showing how the SSD varies with the distance to the camera. Before plotting, try the command: plot([1,2,3], [5,3,7],'o’,'LineWidth',3). g. Write-up: Write about half a page describing your experiment and what it tells you about the accuracy of the weak perspective approximation to perspective projection. In your experiment you measured error as distance varied. What other factors might you vary in future experiments? Turn in all code written, the plots from parts d and f , and the write-up from part g.

  1. Pen and paper exercise for perspective: a. Consider a point that at time t=0 is at the position (1,0,3). The point travels in the x direction at a speed of one unit of distance per unit of time. For example, at time t=1 , the point is at (2,0,3). Suppose this point is being imaged using the perspective camera in problem 1b. Write an equation that gives the x coordinate of the image of the point as a function of time. b. Now, suppose instead that the point travels in the z direction at the same speed. For example, at time t = 1 , the point is at (1,0,4). Write an equation that gives the x coordinate of the image of the point as a function of time. c. What type of geometric object does this second equation describe? 3. Reflectance: a. Take three shiny objects. Look at them in lighting dominated by a small, compact light source, such as a light bulb or the sun. Try to see the specular reflection of the light source in the object. How clearly can you see it? What does this tell you about how shiny the object is? Describe each object, the material it’s made from, and its degree of shininess. b. A soda can is very shiny. Why is it so difficult to clearly see the shape of the compact light source reflected in the side of the soda can? Why is it easier to see the shape of an object that is close to the can than it is to see the shape of a distant object?