This project demonstrates the intersection of conic sections and non-linear maps using a virtual camera. The application is built using Python and various libraries such as OpenCV, PIL, and Matplotlib.
- Virtual Camera: Simulates a virtual camera to project and manipulate images.
- ChArUco Board Detection: Integrates ChArUco board detection for camera calibration and image manipulation.
- Interactive GUI: Provides an interactive GUI for importing images, manipulating them, and visualizing the results.
-
Clone the repository:
git clone https://github.com/mo-geometry/conic_sections.git cd conic_sections
-
Create a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt
-
Run the application:
python main_app.py
-
Import an image: Use the GUI to import an image for manipulation.
-
Toggle ChArUco Board: Enable or disable the ChArUco board detection for calibration.
-
Manipulate Image: Use the provided tools to manipulate the image and visualize the results.
- GUI is based on the image viewer by "@ClearCode"
- B. O'Sullivan and P. Stec, "Sensor tilt via conic sections" IMVIP pages 141-144 (2020).
- P. Stec and B. O'Sullivan, "Method for compensating for the off axis tilting of a lens" United States patent number: 10,356,346 B1, July (2019).