<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://programmingexamples.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://programmingexamples.net/w/index.php?action=history&amp;feed=atom&amp;title=OpenCV%2FWishList%2F3D%2FEstimateP</id>
		<title>OpenCV/WishList/3D/EstimateP - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://programmingexamples.net/w/index.php?action=history&amp;feed=atom&amp;title=OpenCV%2FWishList%2F3D%2FEstimateP"/>
		<link rel="alternate" type="text/html" href="http://programmingexamples.net/w/index.php?title=OpenCV/WishList/3D/EstimateP&amp;action=history"/>
		<updated>2026-06-19T09:47:44Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>http://programmingexamples.net/w/index.php?title=OpenCV/WishList/3D/EstimateP&amp;diff=4691&amp;oldid=prev</id>
		<title>Daviddoria: Created page with 'Projected points are incorrect?  ==EstimateP.cxx== &lt;source lang=&quot;cpp&quot;&gt; #include &quot;opencv2/core/core.hpp&quot; #include &quot;opencv2/imgproc/imgproc.hpp&quot; #include &quot;opencv2/calib3d/calib3d.h…'</title>
		<link rel="alternate" type="text/html" href="http://programmingexamples.net/w/index.php?title=OpenCV/WishList/3D/EstimateP&amp;diff=4691&amp;oldid=prev"/>
				<updated>2011-07-28T19:34:20Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;Projected points are incorrect?  ==EstimateP.cxx== &amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; #include &amp;quot;opencv2/core/core.hpp&amp;quot; #include &amp;quot;opencv2/imgproc/imgproc.hpp&amp;quot; #include &amp;quot;opencv2/calib3d/calib3d.h…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Projected points are incorrect?&lt;br /&gt;
&lt;br /&gt;
==EstimateP.cxx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;opencv2/core/core.hpp&amp;quot;&lt;br /&gt;
#include &amp;quot;opencv2/imgproc/imgproc.hpp&amp;quot;&lt;br /&gt;
#include &amp;quot;opencv2/calib3d/calib3d.hpp&amp;quot;&lt;br /&gt;
#include &amp;quot;opencv2/highgui/highgui.hpp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
std::vector&amp;lt;cv::Point2f&amp;gt; Generate2DPoints();&lt;br /&gt;
std::vector&amp;lt;cv::Point3f&amp;gt; Generate3DPoints();&lt;br /&gt;
&lt;br /&gt;
int main( int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
  // Read points&lt;br /&gt;
  std::vector&amp;lt;cv::Point2f&amp;gt; imagePoints = Generate2DPoints();&lt;br /&gt;
  std::vector&amp;lt;cv::Point3f&amp;gt; objectPoints = Generate3DPoints();&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;There are &amp;quot; &amp;lt;&amp;lt; imagePoints.size() &amp;lt;&amp;lt; &amp;quot; imagePoints and &amp;quot; &amp;lt;&amp;lt; objectPoints.size() &amp;lt;&amp;lt; &amp;quot; objectPoints.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
  cv::Mat cameraMatrix(3,3,cv::DataType&amp;lt;double&amp;gt;::type);&lt;br /&gt;
  cv::setIdentity(cameraMatrix);&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;Initial cameraMatrix: &amp;quot; &amp;lt;&amp;lt; cameraMatrix &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
  &lt;br /&gt;
  cv::Mat distCoeffs(4,1,cv::DataType&amp;lt;double&amp;gt;::type);&lt;br /&gt;
  distCoeffs.at&amp;lt;double&amp;gt;(0) = 0;&lt;br /&gt;
  distCoeffs.at&amp;lt;double&amp;gt;(1) = 0;&lt;br /&gt;
  distCoeffs.at&amp;lt;double&amp;gt;(2) = 0;&lt;br /&gt;
  distCoeffs.at&amp;lt;double&amp;gt;(3) = 0;&lt;br /&gt;
  &lt;br /&gt;
  cv::Mat rvec(3,1,cv::DataType&amp;lt;double&amp;gt;::type);&lt;br /&gt;
  cv::Mat tvec(3,1,cv::DataType&amp;lt;double&amp;gt;::type);&lt;br /&gt;
  &lt;br /&gt;
  cv::solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec);&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;rvec: &amp;quot; &amp;lt;&amp;lt; rvec &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;tvec: &amp;quot; &amp;lt;&amp;lt; tvec &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 &lt;br /&gt;
  std::vector&amp;lt;cv::Point2f&amp;gt; projectedPoints;&lt;br /&gt;
  cv::projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, projectedPoints);&lt;br /&gt;
  &lt;br /&gt;
  for(unsigned int i = 0; i &amp;lt; projectedPoints.size(); ++i)&lt;br /&gt;
    {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Image point: &amp;quot; &amp;lt;&amp;lt; imagePoints[i] &amp;lt;&amp;lt; &amp;quot; Projected to &amp;quot; &amp;lt;&amp;lt; projectedPoints[i] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
std::vector&amp;lt;cv::Point2f&amp;gt; Generate2DPoints()&lt;br /&gt;
{&lt;br /&gt;
  std::vector&amp;lt;cv::Point2f&amp;gt; points;&lt;br /&gt;
&lt;br /&gt;
  float x,y;&lt;br /&gt;
&lt;br /&gt;
  x=282;y=274;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=397;y=227;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=577;y=271;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=462;y=318;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=270;y=479;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=450;y=523;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  x=566;y=475;&lt;br /&gt;
  points.push_back(cv::Point2f(x,y));&lt;br /&gt;
  &lt;br /&gt;
  for(unsigned int i = 0; i &amp;lt; points.size(); ++i)&lt;br /&gt;
    {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; points[i] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
  return points;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
std::vector&amp;lt;cv::Point3f&amp;gt; Generate3DPoints()&lt;br /&gt;
{&lt;br /&gt;
  std::vector&amp;lt;cv::Point3f&amp;gt; points;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  float x,y,z;&lt;br /&gt;
  &lt;br /&gt;
  x=.5;y=.5;z=-.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=.5;y=.5;z=.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=-.5;y=.5;z=.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=-.5;y=.5;z=-.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=.5;y=-.5;z=-.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=-.5;y=-.5;z=-.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  x=-.5;y=-.5;z=.5;&lt;br /&gt;
  points.push_back(cv::Point3f(x,y,z));&lt;br /&gt;
  &lt;br /&gt;
  for(unsigned int i = 0; i &amp;lt; points.size(); ++i)&lt;br /&gt;
    {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; points[i] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
  return points;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMakeLists.txt==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 2.6)&lt;br /&gt;
&lt;br /&gt;
PROJECT(ComputeP)&lt;br /&gt;
&lt;br /&gt;
FIND_PACKAGE(OpenCV REQUIRED )&lt;br /&gt;
INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} )&lt;br /&gt;
&lt;br /&gt;
ADD_EXECUTABLE(ComputeP ComputeP.cxx)&lt;br /&gt;
TARGET_LINK_LIBRARIES(ComputeP opencv_core opencv_highgui&lt;br /&gt;
opencv_flann opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect&lt;br /&gt;
          opencv_features2d opencv_calib3d opencv_legacy opencv_contrib&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Daviddoria</name></author>	</entry>

	</feed>