Source code for Katna.crop_rect

"""
.. module:: Katna.crop_rect
    :platform: OS X
    :synopsis: This module defines crop spec
"""
import os
import cv2
import numpy as np
import Katna.config as config
import math

[docs]class CropRect(object): """Data structure class for storing image crop rectangles :param object: base class inheritance :type object: class:`Object` """ def __init__(self, x, y, w, h): self.x = x self.y = y self.w = w self.h = h self.target_crop_width = None self.target_crop_height = None self.score = 0.0 self.debug_image = 0 def __str__(self): """Print crop rectangle :param object: base class inheritance :type object: class:`Object` """ rep = ( " x_pos: " + str(self.x) + " y_pos: " + str(self.y) + " width: " + str(self.w) + " height: " + str(self.h) + " target_crop_width: " + str(self.target_crop_width) + " target_crop_height: " + str(self.target_crop_height) ) return rep
[docs] def get_image_crop(self, input_image): """public functions which for given input image and current crop rectangle object returns image cropped to crop rectangle specifications. :param object: base class inheritance :type object: class:`Object` :param image: input image :type image: Opencv Numpy Image :return: cropped image according to given spec :rtype: Opencv Numpy Image """ crop_img = input_image[self.y : self.y + self.h, self.x : self.x + self.w] # In case of image crop by specification to ensure cropped images are always # up to specification resize images to target crop specification before return # of cropped image if self.target_crop_height is None or self.target_crop_width is None: return crop_img else: resized_crop_img = cv2.resize(crop_img, (self.target_crop_width, self.target_crop_height)) return resized_crop_img