Opencv fisheye undistort without checker board approach - opencv

I am looking if there is any way we can identify the camera calibration matrix and others to undistort a fisheye image without the checkerboard approach in OpenCV. This is because my current setup doesn't allow me to take some sample pictures out of it. So required an alternative approach. Preferably using OpenCV (Python). Thanks in advance.

Recently there are some AI approches using a single image. E.g. https://github.com/alexvbogdan/DeepCalib.
But I never tried and don't know if it works.

Related

How do I generate stereo images from mono camera?

I have a stationary mono camera which captures a single image frame at some fps.
Assume the camera is not allowed to move,how do I generate a stereo image pair from the obtained single image frame? Is there any algorithms exists for this? If so, are they available in Open-CV?
To get a stereo image, you need a stereo camera, i.e. a camera with two calibrated lenses. So you cannot get a stereo image from a single camera with traditional techniques.
However, with the magic of deep learning, you can obtain the depth image from single camera.
And no, there's no builtin OpenCV function to do that.
The most common use of this kind of techniques is in 3D TVs, which often offer 2D-to-3D conversion, and thus mono to stereo conversion.
Various algorithms are used for this, you can look at this state of the art report.
There is also optical way for this.
If you can add binocular prisms/mirrors to your camera objective ... then you could obtain real stereoscopic image from single camera. That of coarse need access to the camera and setting up the optics. This also introduce some problems like wrong auto-focusing , need for image calibration, etc.
You can also merge Red/Cyan filtered images together to maintain the camera full resolution.
Here is a publication which might be helpful Stereo Panorama with a single Camera.
You might also want to have a look at the opencv camera calibration module and a look at this page.

image calibration manually with transformation matrices from OpenCV

I need to understand that how calibration works for cameras. I do not have basics good enough. Can someone please help me in understanding that how can I apply calibration data to an image taken with a camera for which I already have the calibration matrices such as Camera Matrix, Rotation and Translation matrix, and Distortion Matrix. I got all these using opencv, but I really do not understand how it works. Reading some tutorials helped but still not good enough. Please Please Please help me!!!!!!!!!!!
Thanks in advance,
Sumit
It depends on what you are trying to do. You can use the calibration parameters to remove lens distortion from an image. With a single calibrated camera you can measure planar objects, or you can do 3-D reconstruction from multiple images, assuming you know the extrinsics. With a calibrated stereo pair of cameras you can do 3-D reconstruction more easily.
I am not sure what you mean by "manually". Generally, this is a rather broad topic, which cannot be explained in a few paragraphs. I would recommend you start with the "Learning OpenCV" book by Bradski and Kaehler.

choosing best opencv facial detector

I am very new to opencv and able to install it so far. I want to compare a face with other different faces available in library and to find out the closest match. I have tried different features but couldn't find the closer answer.
Any suggestion to choose a detector.
dimensions of input image and images in library are same.
thanks in advance
i think, you want face recognition (who is it?), not detection (is it a face?).
look here for what opencv has to offer there

Head pose estimation with Opencv

I am using OpenCV Haar Algorithm to track the Head and overlay an image over the Head.
What I am doing is saving frames generated by camera and overlaying image over each frames.
And time is not a constraint as I am not doing it Real-Time.
My code is working fine for say 45 degree of left and right rotation of Head.
But I need something which will track up to 90 degree of rotation.
Even I got many reference of OpenCV functions and link to estimate Head Pose
Please provide me some reference. Code Examples will be cool.
Thanks in advance
You can use an algorithm like SURF (you have samples in OpenCV package) and use it over a picture of the face, the over the image, and then use SURF descriptors to match the points and estimate the 3d position of the face in the image.
You can use the same code on the sample "find_obj" but replace the image by the face picture you want to track.
Hope this helps.
There is a functionc in openCV called POSIT that permit to estimate the pose of 3d object in a single image. It implements POSIT algorithm. Try to have a look there.
You could check the EHCI project at http://code.google.com/p/ehci/ as it gives a nice overview about POSIT and Lukas Kanade.

Can I use openCV to compare two faces on two different images?

I am very new in openCV, I saw it could figure out the face and return a rectangle to indicate the face. I am wondering whether there is anyway for openCV to access two images, with which contains one face, and I expect openCV to return the possibility of whether those two people are the same.
Thanks.
OpenCV does not provide a full face recognition engine.
You might want to check out this work: The One-Shot Similarity Kernel which proposes something similar to what you need. It also provides Matlab code.

Resources