reImagine
reImagine is a QT-based extension of my previous project, "imageTexturing." Both projects focus on understanding and implementing image blending and conversion techniques using OpenCV. This project introduces a reactive Qt window that allows resizing and image saving through the menu bar, offering a sleek and simple design coupled with an effective algorithm for adding texture to input images.
reImagine is an iteration on the original "imageTexturing" project, now featuring a dynamic Qt interface. The goal remains to apply textures to input images using OpenCV, but with improved usability and design in a minimum viable product (MVP) version 1.0.
A sleek stylish interface, that uniformly scrolls across all three images, should you find artefacts or inspect certain regions before saving. This window is sized dynamically and will ensure a great indication of tweeks in later iterations.
Image Texturing explores several approaches on how texture can be transformed on a pixel level, including using different approached. This approached used here is a combination of blending the two images, as well as taking the HSV (Value/ Darkness) into account to add more dramatic shaddow from the texture image. - note: most ineffective and low-yielding methods are removed for simplicity.
![]() Input Image: Original image used for texture mapping. - Luca Bravo @Unsplash |
![]() Texture: Image used as a texture overlay. -Annie Sprat @Unsplash |
![]() Final Image: Resulting image with applied texture. |
Before running the program, ensure you have the following installed:
- C++ compiler
- OpenCV (version 4.x)
- Qt (version 5.x or 6.x)
- Q build system (QBS)
Clone the Repository:
git clone https://github.com/LeannAlexandra/reImagine.git
cd reImagine
Compile the Program:
qmake reImagine.qbs
make
Run the Program:
./reImagine
Expected Output: The program will display the input image, output image and the image with the applied texture in a Qt window. You can resize the window and save the output image from the menu bar. You can grab and pan all three uniformly to always see the exact region of interest.
The program reads an input image (inputImage.jpg) and a texture image (canvas.jpg) from the project directory. It overlays the texture onto the input image, adjusts brightness based on texture intensity, and displays the resulting image. Users can save the output image directly from the Qt window.
Contributions are welcome! If you have ideas for improvements or encounter any issues, please open an issue or submit a pull request.
This project is licensed under the MIT License.