====== iMagine - share, browse and organize your images ====== - Sanaz Ahmadi - Teemu Kinnunen - Jukka Lankinen ===== Idea ===== Organize images using only **visual information**, so that the user can find particular type of images easily. The system will organize images on the 2D map in the way that similar images are close to each other. Advantage of visual information is that user does not need to label all of his/her images to make searches. ==== Features ==== **User can** * Get a list of similar images from the server using visual information and visualize it * Browse image collection (Image map/gallery) * Sync the image collection with the server with many devices **Optional features** * Share images with other users directly using mobile devices * Image tagging and automatic learning of labels (image categories) ===== Implementation Plan and Goals ===== **Server** * Image categorization using bag-of-words model (DONE) * Syncing with clients (DONE) * Set up the server in the Internet (DONE) **Client** * Syncing with server (DONE) * User interface design (DONE) * Settings page * Image folder (kind of DONE!) * User information (user id, password) (DONE) * Server settings (host address) (DONE) * Image categorization (DONE) ===== Design ===== ** The framework ** {{:qt2010:grp8:sync.png?600x600|The overview}} ** The protocol ** {{:qt2010:grp8:protocol.png?600x600|The protocol}} ** Server ** Apache server with PHP responding to queries from user using HTTP. User information is stored in a database so new users can be easily added. We also have a bunch of binaries which do the heavy image processing operations. ** Client ** For client, we used Qt. We had two views: main view and image view. User interfaces were very simple and dynamic, so we decided the build them by coding them instead of using Qt Creator. The connection between Qt Creator and code was bit confusing thus generating layouts and views manually was easy choice. Main view uses a scrollable area and a grid layout that is inside the scrollable area. Inside grid nodes, we have added home brew custom widgets. These custom widgets stack multiple images together to illustrate some example images from the virtual directory. In image view, we use 2x3 (rows x cols) grid layout where left and right buttons are in the top left top right cells and home button is in the bottom left node. The image tooks two columns from the middle. ** QT Mobility pack ** We are using core gui and network packages. ===== Screen shots ===== Our //Main view// stacks groups of similar images into kind of virtual directories. User can go inside the virtual directory by clicking it. {{:qt2010:grp8:qtcodecamp-scr.jpg|Main view}} In //Image view// we show images inside a virtual directory. User can browse these virtual directories using (<) left and right (>) buttons. {{:qt2010:grp8:qtcodecamp-scr2.jpg|Image view}} ===== Project Artefacts ===== ==== Presentation slides ==== Our presentation slides in pdf format can be downloaded from {{:qt2010:grp8:slides_imagine.pdf|here}}. ==== Report document ==== Report document: {{:qt2010:grp8:imagine-report.pdf|here}} and brochyre: {{:qt2010:grp8:a4.pdf|here}} ==== Source Package ==== Still WIP, but here: {{:qt2010:grp8:imagine.zip|Latest version}} === How to run software === - Download and unzip the package - Compile source and run! - Register new user account at the [[http://hive.dy.fi/~users/qtcodecamp/qtcodecamp.php]] - If you get "REGISTER 1", It means your registration was successful! - Open the application and fill in the user name, password and image directory. - BROWSE image stacks. - open stacks by clicking and browse stack contents. **If you encounter any problems, please send email to Jukka Lankinen or Teemu Kinnunen!** ===== Conclusion =====