Exemplo n.º 1
0
 def editImageInCamera(self):
     self.d(className="android.view.View").swipe.left()
     self.d(className="android.widget.ImageView").click.wait()
     if not self.d(
             resourceId=
             "com.android.camera2:id/filmstrip_bottom_control_edit").exists:
         CameraImpl().getScreenshotAndPullToHost(
             "assert.png", g_common_obj.get_user_log_dir())
     assert self.d(
         resourceId="com.android.camera2:id/filmstrip_bottom_control_edit"
     ).exists, "[ERROR]: The button is not found!"
     self.d(
         resourceId="com.android.camera2:id/filmstrip_bottom_control_edit"
     ).click.wait()
     time.sleep(2)
     CameraLogger.instance().debug("edit")
     self.d(description="CROP").click.wait()
     time.sleep(2)
     CameraLogger.instance().debug("Done")
     self.d(description="Apply").click.wait()
     if not self.d(description="CROP").exists:
         CameraImpl().getScreenshotAndPullToHost(
             "assert.png", g_common_obj.get_user_log_dir())
     assert self.d(
         description="CROP").exists, "[ERROR]: The button is not found!"
     time.sleep(2)
     self.d(text="Done").click.wait()
Exemplo n.º 2
0
 def is_negative(self, first_image_uri, second_image_uri):
     """
     Check if a picture is the negative of another one
     :type first_image_uri: str
     :param first_image_uri: uri of the first picture (ref picture)
     :type second_image_uri: str
     :param second_image_uri: uri of the second picture
     :type percent: int
     :param percent: percent of corrupted pixels
     :rtype: bool
     :return: True if second_image_uri is the negative of first_image_uri  else False
     """
     import PIL.ImageOps
     image = Image.open(first_image_uri)
     inverted_image = None
     if image.mode == 'RGBA':
         r,g,b,a = image.split()
         rgb_image = Image.merge('RGB', (r,g,b))
         inverted_image = PIL.ImageOps.invert(rgb_image)
         r2,g2,b2 = inverted_image.split()
         final_transparent_image = Image.merge('RGBA', (r2,g2,b2,a))
         final_transparent_image.save('temp.jpg')
     else:
         inverted_image = PIL.ImageOps.invert(image)
         inverted_image.save('temp.jpg')
     imageA = cv2.imread("temp.jpg")
     imageB = cv2.imread(second_image_uri)
     try:
         mse = self.mse(imageA, imageB)
         CameraLogger.instance().debug("====mse: "+str(mse)+"======")
     except:
         CameraLogger.instance().debug("====Faile to get mse, ignore it======")
         mse = 1000
     os.system("rm temp.jpg")
     #Check the similarity of the two pictures
     if mse < 2000:
         pixels_ok = 0
         percent = 60
         # Load reference image in grayscale
         image_ref = Image.open(first_image_uri).convert('L')
         image_ref_pixels = image_ref.load()
         # Load test image in grayscale
         image_test = Image.open(second_image_uri).convert('L')
         image_test_pixels = image_test.load()
         # Combine reference and test pictures
         data = []
         for i in range(image_ref.size[0]):
             for j in range(image_ref.size[1]):
                 data.append(255 - image_ref_pixels[i, j] - image_test_pixels[i, j])
 #        print data
         # Check result picture is black
         for iter in range(len(data)):
             if data[iter] < 15:
                 pixels_ok += 1
         result = (pixels_ok * 100) / len(data)
         print result
         return result > percent
     else:
         return False
Exemplo n.º 3
0
 def __init__(self, cfg=None):
     if cfg == None:
         self.cfg = self.config.read(CameraCommon.DEFAULT_CONFIG_FILE,
                                     "multimedia_camera")
     else:
         self.cfg = cfg
     self.d = g_common_obj.get_device()
     self.logger = CameraLogger.instance()
     self.x = self.d.info["displayWidth"]
     self.y = self.d.info["displayHeight"]
Exemplo n.º 4
0
 def check_video_corrupt(self, video_uri):
     """
     Check if a video is corrupted
     :type video_uri: str
     :param video_uri: uri of the video to check
     :rtype: bool
     :return: True if the video is not corrupted False else.
     """
     import cv2
     # Read the video
     video = cv2.VideoCapture(video_uri)
     # Return video status
     ret = video.isOpened()
     if ret == False:
         cmd = "cp " + video_uri + " " + g_common_obj.get_user_log_dir()
         CameraLogger.instance().debug("====copy abnormal video: " + cmd +
                                       "======")
         os.system(cmd)
     return ret
Exemplo n.º 5
0
 def __init__(self, cfg=None):
     self.d = g_common_obj.get_device()
     self.cfg = cfg
     self.dut = self.d
     self.sutter_btn_top = 0
     self.sutter_btn_bottom = 0
     self.sutter_btn_left = 0
     self.sutter_btn_right = 0
     self.x = self.d.info["displayWidth"]
     self.y = self.d.info["displayHeight"]
     self.logger = CameraLogger.instance()
Exemplo n.º 6
0
    def __init__(self, cfg=None):
        if cfg == None:
            self.cfg = self.config.read(CameraCommon.DEFAULT_CONFIG_FILE,
                                        "multimedia_camera")
        else:
            self.cfg = cfg
        self.d = g_common_obj.get_device()
        self.logger = CameraLogger.instance()
        self.x = self.d.info["displayWidth"]
        self.y = self.d.info["displayHeight"]

        self.camera_widget = self.CameraWidget()

        self.camera_common = CameraCommon()
        self.multimedia_setting = MultiMediaSetting(
            self.camera_common.DEFAULT_CONFIG_FILE)
        self.multimedia_setting.install_apk("ref_camera_1_apk")
        self.camera_common.grantPermission(self.PACKAGE_NAME_REFCAMCAMERA,
                                           self.PERMISSION_LIST)
Exemplo n.º 7
0
class CheckImage:

    def check_image_corrupt(self, image_uri):
        """
        Check if a picture is corrupted
        :type image_uri: str
        :param image_uri: uri of the picture
        :rtype: bool
        :return: True if the picture is corrupted False else.
        """
        import cv2
        #import cv2.cv as cv
        corrupted = False
        errMsg = ""
        try:
            img = cv2.imread(image_uri)
        except:
            corrupted = True
            errMsg += "Picture is corrupted."
        if img is None:
            corrupted = True
            errMsg += "Picture is corrupted."
        checkColor = False
        try:
            checkColor = self.check_solid_black_or_green(image_uri)
        except Exception, e:
            checkColor = True
            errMsg += "check solid color, exception occurs: %s" %(e)
        if corrupted==False and checkColor ==True:
            corrupted = True
            errMsg += "Picture is solid black or green."
        if errMsg!="":
            cmd = "cp "+image_uri+" "+g_common_obj.get_user_log_dir()
            CameraLogger.instance().debug("====copy abnormal picure: "+cmd+"======")
            os.system(cmd)      
        return errMsg
Exemplo n.º 8
0
 def __init__(self, cfg=None):
     self.cfg = cfg
     self.d = g_common_obj.get_device()
     self.logger = CameraLogger.instance()
     self.x = self.d.info["displayWidth"]
     self.y = self.d.info["displayHeight"]
Exemplo n.º 9
0
 def tearDown(self):
     super(CameraTestBase, self).tearDown()
     # self.logger.debug("===== Set CameraLogger instance to None====")
     self.logger.removeHanlders()
     CameraLogger.destory()
Exemplo n.º 10
0
 def setUp(self):
     super(CameraTestBase, self).setUp()
     self.logger = CameraLogger.instance()
     self.logger.addFileHandler()
     # CameraLogger(g_common_obj.get_user_log_dir()+os.sep+CameraLogger.logFileName)
     self.camera_dir = "/sdcard/DCIM/Camera/"