pyCAIR

pyCAIR Logo

pyCAIR is a content-aware image resizing(CAIR) library based on Seam Carving for Content-Aware Image Resizing paper.


                                          PyPI version License: GPL v3 Documentation Status PyPI - Python Version Code Health


Table of Contents

  1. How CAIR works
  2. Understanding the research paper
  3. Project structure and explanation
  4. Installation
  5. Usage
  6. Demo
  7. Screenshots
  8. Todo

How does it work

Result7 Result8
DP Matrix Backtracking with minimum energy

Intutive explanation of research paper

Notes1

Notes2

Notes3

Notes4

Project structure and explanation

Directory structure:

pyCAIR (root directory)
  | - images/
  | - results /
  | - sequences/ (zipped in repository)
  | - videos/
  | - notdoneyet.py
  | - imgtovideos.py
  | - opencv_generators.py
  | - seam_carve.py
  | - helpers.py

File: notdoneyet.py

File: imgtovideos.py

File: opencv_generators.py

File: seam_carve.py

File: helpers.py

Other folders:

Installation

Usage

'''
It runs the entire code and returns final results
'''
from pyCAIR import user_input
user_input(alignment, scale, seam, input_image, generate_sequences)

'''
It generates the energy map
'''
from pyCAIR import generateEnergyMap
generateEnergyMap(image_name, file_extension, file_name)

'''
It generates color maps
'''
from pyCAIR import generateColorMap
generateColorMap(image_name, file_extension, file_name)

'''
It converts sequence of images generated to video
'''
from pyCAIR import generateVideo
generateVideo()

'''
It returns all the paths where images are present for generating video
'''
from pyCAIR import getToProcessPaths
getToProcessPaths()

'''
It returns seams, cropped image for an image
'''
from pyCAIR import cropByColumn
seam_img, crop_img = cropByColumn(image, display_seams, generate, lsit, scale_c, fromRow)

'''
It returns seams, cropped image for an image
'''
from pyCAIR import cropByRow
seam_img, crop_img = cropByRow(image, display_seams, generate, lsit, scale_c)

'''
It returns created folder
'''
from pyCAIR import createFolder
f = createFolder(folder_name)

'''
It returns extension of file
'''
from pyCAIR import getFileExtension
f = getFileExtension(file_name)

'''
It writes image to specified folder
'''
from pyCAIR import writeImage
f = writeImage(image, args)

In Action

Gif1

Gif2

Video Playlist

Screenshots

Results for Image 1:

Result0 Result1 Result2
Original Image Grayscale Energy Map
Result3 Result4
Color Map Winter Color Map Hot
Result5 Result6
Seams for Columns Columns Cropped
Result7 Result8
Seams for Rows Rows Cropped

Results for Image 2:

Result0 Result1 Result2
Original Image Grayscale Energy Map
Result3 Result4
Color Map Winter Color Map Hot
Result5 Result6
Seams for Columns Columns Cropped
Result7 Result8
Seams for Rows Rows Cropped

Todo

License

This software is licensed under the GNU General Public License v3.0 © Chirag Shah