| 1 | # Vaibhav GUPTA - Made the skeleton python code for displaying the main image with the projector
 | 
  
    | 2 | # ˅˅˅˅˅
 | 
  
    | 3 |     from configure_reader import ConfigureReader
 | 
  
    | 4 |     from image_correction import image_Correction
 | 
  
    | 5 |     import cv2
 | 
  
    | 6 |     import socket
 | 
  
    | 7 | 
 | 
  
    | 8 |     cR = ConfigureReader()
 | 
  
    | 9 |     iC = image_Correction()
 | 
  
    | 10 | 
 | 
  
    | 11 |     # Display the corrected image of one side and send the other side to TCP
 | 
  
    | 12 |     class MainDisplay(object):
 | 
  
    | 13 |         IP_Address
 | 
  
    | 14 |         frame = 0
 | 
  
    | 15 |         Port
 | 
  
    | 16 | 
 | 
  
    | 17 |         # Constructor
 | 
  
    | 18 |         def __init__(self):
 | 
  
    | 19 |             pass
 | 
  
    | 20 | 
 | 
  
    | 21 |         def displayImage():
 | 
  
    | 22 |             gamma = float(cR.getGamma())
 | 
  
    | 23 | 
 | 
  
    | 24 |             while True:
 | 
  
    | 25 |                 self.frame += 1
 | 
  
    | 26 | 
 | 
  
    | 27 |                 # Get correct image data of RGBA
 | 
  
    | 28 |                 outputImages = iC.alphaBlending(gamma)
 | 
  
    | 29 | 
 | 
  
    | 30 |                 if(CR.getProjectorSide() == "left"):
 | 
  
    | 31 |                     if textcounter < texttimeout:
 | 
  
    | 32 |                         outtext = outputImages[0].copy()
 | 
  
    | 33 |                         cv2.imshow("outputL.png", cv2.putText(outtext, "Current Gamma - " + str(round(gamma,2)) + ", Frame:" + str(self.frame)+" Save with (Q)", org = (400, 700), fontFace = cv2.FONT_HERSHEY_COMPLEX_SMALL, fontScale = 2, color = (0,0,255)))
 | 
  
    | 34 |                     else:
 | 
  
    | 35 |                         cv2.imshow("outputL.png", outputImages[0])
 | 
  
    | 36 |                 elif(CR.getProjectorSide() == "right"):
 | 
  
    | 37 |                     if textcounter < texttimeout:
 | 
  
    | 38 |                         outtext = outputImages[1].copy()
 | 
  
    | 39 |                         cv2.imshow("outputR.png", cv2.putText(outtext, "Current Gamma - " + str(round(gamma,2)) + ", Frame:" + str(self.frame)+" Save with (Q)", org = (400, 700), fontFace = cv2.FONT_HERSHEY_COMPLEX_SMALL, fontScale = 2, color = (0,0,255)))
 | 
  
    | 40 |                     else:
 | 
  
    | 41 |                         cv2.imshow("outputR.png", outputImages[1])
 | 
  
    | 42 | 
 | 
  
    | 43 |                 key = cv2.waitKey(1)
 | 
  
    | 44 |                 if key == 27:
 | 
  
    | 45 |                     break
 | 
  
    | 46 |                 if key == ord('q'):
 | 
  
    | 47 |                     # Saving the current gamma settings to configuration file
 | 
  
    | 48 |                     cR.setGammaSetting(str(round(gamma,2)))
 | 
  
    | 49 |                 else:
 | 
  
    | 50 |                     # Gamma adjust to create gamma mask
 | 
  
    | 51 |                     if key == ord('w') or key == ord('s') or key == ord('e') or key == ord('d') or self.frame == 1:
 | 
  
    | 52 | 
 | 
  
    | 53 |                         textCount = 0
 | 
  
    | 54 |                         if key == ord('w'):
 | 
  
    | 55 |                             gamma += 0.1
 | 
  
    | 56 | 
 | 
  
    | 57 |                         elif key == ord('s'):
 | 
  
    | 58 |                             if gamma - 0.1 > 0:
 | 
  
    | 59 |                                 gamma -= 0.1
 | 
  
    | 60 |                         elif key == ord('e'):
 | 
  
    | 61 |                             gamma += 0.01
 | 
  
    | 62 | 
 | 
  
    | 63 |                         elif key == ord('d'):
 | 
  
    | 64 |                             if gamma - 0.1 > 0:
 | 
  
    | 65 |                                 gamma -= 0.01
 | 
  
    | 66 | 
 | 
  
    | 67 |                         outputImages = iC.alphaBlending(gamma)
 | 
  
    | 68 |             
 | 
  
    | 69 |                         # Sending the image to the TCP 
 | 
  
    | 70 |                         self.sendImage()
 | 
  
    | 71 | 
 | 
  
    | 72 |                 textCount += 1
 | 
  
    | 73 | 
 | 
  
    | 74 |             cv2.destroyAllWindows()
 | 
  
    | 75 | 
 | 
  
    | 76 |     mainStich().displayImage()
 | 
  
    | 77 | # ˄˄˄˄˄
 |