68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
import numpy as np
|
||
import numpy.typing as npt
|
||
from matplotlib import pyplot as plt
|
||
import cv2
|
||
import uz_framework.image as uz_image
|
||
import uz_framework.text as uz_text
|
||
import os
|
||
|
||
##############################################
|
||
# EXCERCISE 1: Exercise 1: Image derivatives #
|
||
##############################################
|
||
|
||
def ex1():
|
||
one_b()
|
||
|
||
def one_a() -> None:
|
||
"""
|
||
d = (f * px)/pz + f(T - px)/pz => d = (f * T) / pz
|
||
"""
|
||
|
||
def one_b() -> None:
|
||
"""
|
||
Write a script that computes the disparity for a range of values of pz. Plot the values
|
||
to a figure and set the appropriate units to axes. Use the following parameters of
|
||
the system: focal length is f = 2.5mm and stereo system baseline is T = 12cm
|
||
"""
|
||
|
||
pz_values = np.arange(0.001, 0.1, 0.001)
|
||
f = 0.0025
|
||
T = 0.12
|
||
|
||
d = (f * T) / pz_values
|
||
|
||
plt.plot(pz_values, d)
|
||
|
||
plt.xlabel('pz [m]')
|
||
plt.ylabel('d [m]')
|
||
plt.title('Disparity for a range of values of pz')
|
||
plt.show()
|
||
|
||
def one_c() -> None:
|
||
"""
|
||
In order to get a better grasp on the idea of distance and disparity, you will calculate
|
||
the numbers for a specific case. We will take the parameters from a specification of
|
||
a commercial stereo camera Bumblebee2 manufactured by the company PointGray:
|
||
f = 2.5mm, T = 12cm, whose image sensor has a resolution of 648×488 pixels that
|
||
are square and the width of a pixel is 7.4µm. We assume that there is no empty
|
||
space between pixels and that both cameras are completely parallel and equal. Lets
|
||
say that we use this system to observe a (point) object that is detected at pixel 550
|
||
in x axis in the left camera and at the pixel 300 in the right camera. How far is the
|
||
object (in meters) in this case? How far is the object if the object is detected at
|
||
pixel 540 in the right camera? Solve this task analytically and bring your solution
|
||
to the presentation of the exercise.
|
||
"""
|
||
|
||
|
||
# ######## #
|
||
# SOLUTION #
|
||
# ######## #
|
||
|
||
def main():
|
||
ex1()
|
||
#ex2()
|
||
#ex3()
|
||
|
||
if __name__ == '__main__':
|
||
main()
|