OpenCV Q&A Forum - RSS feedhttp://answers.opencv.org/questions/OpenCV answersenCopyright <a href="http://www.opencv.org">OpenCV foundation</a>, 2012-2018.Thu, 28 Feb 2019 07:18:49 -0600Intrinsic Camera Parametershttp://answers.opencv.org/question/194933/intrinsic-camera-parameters/ I am trying to understand intrinsic camera parameters.
Specifically I not able to understand the skew factor and pixel scaling derivation in it.
Example:
Most of the literature explanation starts like this
(x, y, z) - point in real world
(x', y') - point in image
Derivation
Step 1:
x' = xf/z
y' = yf/z
Step 2:
Account for origin shift of the coordinate system (Image plane)
(Ox, Oy)
- x' = xf/z + Ox
- y' = yf/z + Oy
Step 3:
Account in skew, here I really don't understand it
Consider a point in the image and its coordinates
According to oblique coordinate system - u', v'
According to Cartesian coordinate system - u, v
Angle between basis of oblique coordinates - l
relationship
- u' = u - v*cot(l)
- v' = v/sin(l)
What I don't understand is they replace x and y with u' and v'. Instead I feel it should be other way around, x and y with u and v.
After that step, pixel scaling is done.
In that too most textbook misses one condition when they consider height and width of pixel they don't mention the cases. For example in case of skew is the height along the basis of oblique coordinates or along the Cartesian coordinates. This is also confusing?
Two summarize I have two question:
Q-1 How coordinate system is transformed when there is skew?
Q-2 How pixel scaling is done?Mon, 02 Jul 2018 15:13:18 -0500http://answers.opencv.org/question/194933/intrinsic-camera-parameters/Answer by catvision for <p>I am trying to understand intrinsic camera parameters.</p>
<p>Specifically I not able to understand the skew factor and pixel scaling derivation in it.</p>
<p>Example:</p>
<p>Most of the literature explanation starts like this
(x, y, z) - point in real world
(x', y') - point in image
Derivation
Step 1:
x' = xf/z
y' = yf/z</p>
<p>Step 2:
Account for origin shift of the coordinate system (Image plane)
(Ox, Oy)</p>
<ul>
<li>x' = xf/z + Ox</li>
<li>y' = yf/z + Oy</li>
</ul>
<p>Step 3:</p>
<p>Account in skew, here I really don't understand it
Consider a point in the image and its coordinates</p>
<p>According to oblique coordinate system - u', v'
According to Cartesian coordinate system - u, v</p>
<p>Angle between basis of oblique coordinates - l</p>
<p>relationship</p>
<ul>
<li>u' = u - v*cot(l)</li>
<li>v' = v/sin(l)</li>
</ul>
<p>What I don't understand is they replace x and y with u' and v'. Instead I feel it should be other way around, x and y with u and v.</p>
<p>After that step, pixel scaling is done.</p>
<p>In that too most textbook misses one condition when they consider height and width of pixel they don't mention the cases. For example in case of skew is the height along the basis of oblique coordinates or along the Cartesian coordinates. This is also confusing?</p>
<p>Two summarize I have two question:</p>
<p>Q-1 How coordinate system is transformed when there is skew?</p>
<p>Q-2 How pixel scaling is done?</p>
http://answers.opencv.org/question/194933/intrinsic-camera-parameters/?answer=209601#post-id-209601I have written a [blog post](https://blog.immenselyhappy.com/post/camera-axis-skew/) explaining the effect of the axis skew on the calibration matrix.
In brief the answers to your questions are
Q-1 How coordinate system is transformed when there is skew?
Answer: Using the parallelogram of vector addition and some trigonometry, you can derive the skew coordinates in terms of the cartesian coordinates of a point
Q-2 How pixel scaling is done?
Answer: It depends on the transformation you choose. Some prefer shearing (which changes the pixel height) and others prefer a pixel dimension preserving transformation.Thu, 28 Feb 2019 07:18:49 -0600http://answers.opencv.org/question/194933/intrinsic-camera-parameters/?answer=209601#post-id-209601