matlab,computer-vision,camera-calibration,matlab-cvst

Here are the steps you need to do: Estimate the intrinsic parameters of the camera using a calibration target. You can user Matlab camera calibration toolbox, or http://www.vision.caltech.edu/bouguetj/calib_doc/ Take your time performing this step and make sure the calibration is correct. Calibration toolboxes will give you statistics on how good...

opencv,computer-vision,camera-calibration,perspectivecamera

What do you mean under world coordinates? If you mean object coordinates then you should use the inverse transformation of solvepnp's result. Given a view matrix [R|t], we have that inv([R|t]) = [R'|-R'*t], where R' is the transpose of R. In OpenCV: cv::Mat rvec, tvec; cv::solvePnP(objectPoints, imagePoints, intrinsics, distortion, rvec,...

matlab,computer-vision,coordinate-systems,camera-calibration,matlab-cvst

RotationOfCamera2 and TranslationOfCamera2 describe the transformation from camera1's coordinates into camera2's coordinates. A camera's coordinate system has its origin at the camera's optical center. Its X and Y-axes are in the image plane, and its Z-axis points out along the optical axis. Equivalently, the extrinsics of camera 1 are identity...

opencv,camera-calibration,fisheye,opencv3.0

To resolve my problem, I implemented my own reprojection function. This function is the inverse of fisheye::projectPoint. It is specific to my problem because the distance between my 3D point and the origin is known. Thanks Micka for yours comments....

computer-vision,camera-calibration,stereo-3d,rotational-matrices,projection-matrix

It depends in which direction R was determined. I.e. is it a transformation of the camera in the global reference frame, or is it a transformation of the points in the local camera's reference frame. The true answer is: Don't worry just check that what you've got is right....

c++,opencv,camera-calibration,calibration

The problem is that I use openCV dll files from vc10 folder using vs2012 when I change to vc11 it works.

opencv,computer-vision,camera-calibration

If you know or guessed the camera matrix A (and optionally the distortion coefficients), the simplest approach is to use the function cv::solvePnP (doc link) or its robust version cv::solvePnPRansac (doc link). If you do not know the camera matrix, I don't think you can estimate the rotation matrix R...

c++,opencv,computer-vision,camera-calibration,perspectivecamera

Okay, so solvePnP() gives you the transfer matrix from the model's frame (ie the cube) to the camera's frame (it's called view matrix). Input parameters: objectPoints – Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. std::vector<cv::Point3f> can...

Try size (8,6). It is a bit confusing counting the squares correctly, but try and count the 'inside' corners.

matlab,computer-vision,camera-calibration,matlab-cvst

The Mathworks documentation on the Stereo Camera Calibration app does give specific advice on image formats: Use uncompressed images or lossless compression formats such as PNG. There's also a great deal more information on the details of what sort of images you need, under the "Image, Camera, and Pattern Preparation"...

c++,opencv,camera-calibration,disparity-mapping

Disparity is the offset in (horizontal) pixel units between a point in one stereo image to the other, where both points are images of the same 3D world point. If your images are switched the direction of the disparity would be flipped as well. Try switching the input images. If...

python,c++,opencv,camera-calibration,real-time-updates

Hard to give advice without seeing the code you use to pull images from the camera. Generally speaking, if your frame rate requirements are low enough, you could just grab the pixel buffers from the camera, copy them inside a cv image and apply undistort. At higher frame rates cv...

matlab,opencv,computer-vision,camera-calibration,matlab-cvst

Your adviser is correct in that both MATLAB and OpenCV use essentially the same calibration algorithm. However, MATLAB uses the Levenberg-Marquardt non-linear least squares algorithm for the optimization (see documentation), whereas OpenCV uses gradient descent. I would guess that this accounts for most of the difference in the reprojection errors....

computer-vision,camera-calibration,extrinsic-parameters

the solvePnP procedure calculates extrinsic pose for Chess Board (CB) in camera coordinates. openCV added a fishEye library to its 3D reconstruction module to accommodate significant distortions in cameras with a large field of view. Of course, if your intrinsic matrix or transformation is not a classical intrinsic matrix you...

Actually there is no need to involve an orthographic camera. Here is how you can get the appropriate perspective transform. If you calibrated the camera using cv::calibrateCamera, you obtained a camera matrix K a vector of lens distortion coefficients D for your camera and, for each image that you used,...

The Nexus 6 has a lens that reports CALIBRATED. It is the only one I know of at the moment. You can see a helpful database of device capabilities which I am trying to compile here. There is no way for you to change the camera device's status to CALIBRATED,...

python,opencv,numpy,camera-calibration

You should post the error code and the exception, so we can help you to fix it. -1 mean calculate the real length from the total element number: np.mgrid[0:7,0:6].T.reshape(-1,2) you can split the code as following: a = np.mgrid[0:7, 0:6] b = a.T c = b.reshape(-1, 2) print a.shape, b.shape,...

image,matlab,camera-calibration,matlab-cvst,distortion

If you are using one of the calibration images, then all the information you need is in the cameraParams object. Let's say you are using calibration image 1, and let's call it I. First, undistort the image: I = undistortImage(I, cameraParams); Get the extrinsics (rotation and translation) for your image:...

python,computer-vision,camera-calibration,opencv3.0,pose-estimation

I think your camera matrix is ok. The error may be caused by objp or corners. objp must be array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. std::vector of cv::Point3f can be also passed here. corners must...

c++,opencv,gcc,ubuntu-12.04,camera-calibration

You are declaring object_points and image_points within the while loop, but probably want to put declarations outside of the loop. Otherwise, the lists will (effectively) be cleared after each iteration. The user presses the first key, to detect the checkerboards. Boards are written to object_points and image_points. Then the user...

matlab,opencv,computer-vision,camera-calibration,matlab-cvst

There are many possible sources of error. First of all, while all three of the calibration implementations you have tried use essentially the same algorithm, there are enough differences that explain the discrepancies in the results. The main difference is in the checkerboard corner detection. The Caltech Calibration Toolbox does...

opencv,image-processing,3d,computer-vision,camera-calibration

This can be done in pure OpenCV as long as you have your camera parameters. You should be able to create three vectors corresponding to axis x, y, z (basically points [0,0,0] [1, 0, 0], [0, 1, 0], [0, 0, 1] which you will later project into the image plane....

opencv,image-processing,3d,camera-calibration

x, y image point only determines a ray from the camera centers through the image point. It has infinite number of possible z and when you multiply images point with inverse matrices you will get an equation of a ray or a line. It is impossible to get 3D from...

opencv,camera,camera-calibration

I think the short answer is: No it doesn't. The calibration should be the same (within experimental limits) at different apertures. The aperture only affects the depth of field and the amount of light entering the camera. The focal length, principal point, len distortions, etc. don't change - although your...

opencv,camera-calibration,ros,subscriber

According to the comment to this answer, using cv::startWindowThread() does not always work. Maybe this is the issue in your case. Try to add cv::waitKey(10) after cv::imshow instead. This will wait for some key press for 10 milliseconds, giving the window time to show the image. (This always seemed to...

matlab,opencv,computer-vision,camera-calibration,matlab-cvst

The size of the board you should use depends on the distance to the camera. Ideally, you want to place the checkerboard at the same distance from the camera at which you want to do your measurements. At the same time you want to have enough data points to cover...

My proposition is to use different non-coplanar rigs (surfaces) in camera calibration process. The algorithm opencv uses definitely need at least two different views to perform good calibration. If it possible, provide several views with different angles (2 is just a starting point, 10 is desirable). I'm not 100% sure...