title: Python 2.7.3 + OpenCV 2.4 after rotation window doesn't fit Image
body: <p>I'm trying to rotate a image some degrees then show it in a window.
  my idea is to rotate and then show it in a new window with new width and height of window calculated from the old width and height:</p>
  
  <pre><code>new_width = x * cos angle + y * sin angle
  new_height = y * cos angle + x * sin angle
  </code></pre>
  
  <p>I was expecting the result to look like below:</p>
  
  <p><img src="https://i.stack.imgur.com/GKB1b.jpg" alt="enter image description here"></p>
  
  <p>but it turns out the result looks like this:</p>
  
  <p><img src="https://i.stack.imgur.com/he3mh.jpg" alt="enter image description here"></p>
  
  <p>and my code is here:</p>
  
  <pre><code>#!/usr/bin/env python -tt
  #coding:utf-8
  
  import sys
  import math
  import cv2
  import numpy as np 
  
  def rotateImage(image, angle):#parameter angle in degrees
  
      if len(image.shape) &gt; 2:#check colorspace
          shape = image.shape[:2]
      else:
          shape = image.shape
      image_center = tuple(np.array(shape)/2)#rotation center
  
      radians = math.radians(angle)
  
      x, y = im.shape
      print 'x =',x
      print 'y =',y
      new_x = math.ceil(math.cos(radians)*x + math.sin(radians)*y)
      new_y = math.ceil(math.sin(radians)*x + math.cos(radians)*y)
      new_x = int(new_x)
      new_y = int(new_y)
      rot_mat = cv2.getRotationMatrix2D(image_center,angle,1.0)
      print 'rot_mat =', rot_mat
      result = cv2.warpAffine(image, rot_mat, shape, flags=cv2.INTER_LINEAR)
      return result, new_x, new_y
  
  def show_rotate(im, width, height):
  #    width = width/2
  #    height = height/2
  #    win = cv2.cv.NamedWindow('ro_win',cv2.cv.CV_WINDOW_NORMAL)
  #    cv2.cv.ResizeWindow('ro_win', width, height)
      win = cv2.namedWindow('ro_win')
      cv2.imshow('ro_win', im)
      if cv2.waitKey() == '\x1b':
          cv2.destroyWindow('ro_win')
  
  if __name__ == '__main__':
  
      try:
          im = cv2.imread(sys.argv[1],0)
      except:
          print '\n', "Can't open image, OpenCV or file missing."
          sys.exit()
  
      rot, width, height = rotateImage(im, 30.0)
      print width, height
      show_rotate(rot, width, height)
  </code></pre>
  
  <p>There must be some stupid mistakes in my code lead to this problem, but I can not figure it out...
  and I know my code is not pythonic enough :( ..sorry for that..</p>
  
  <p>Can anyone help me?</p>
  
  <p>Best，</p>
  
  <p>bearzk</p>