Example #1
0
    def test_ocrtShahedWithDataset(self):
        rgbImages = self.datasetUtils.loadArri()
        cfaImages, image_size = self.datasetUtils.convertDatasetToCFA(rgbImages)
        psnrs = []
        ssims = []
        jpeg2000CompressionRatioAfters = []
        JpegLsCompressionRatios = []
        compressionRatioLZWs = []
        compressionRatiojpeg2000LossyAfters = []

        # filtered = (filtered + 128)
        # filtered[:, 1::2] = filtered[:, 1::2] / 2 + 128

        def inverseFunction(data):
            data = data.astype('float32') * 2 - 256

            data = compute_orct1inverse(data, precisionFloatingPoint=self.precisionFloatingPoint)
            return data

        sampleFunctionReverse = inverseFunction

        for bayer in cfaImages:
            bayer = bayer.astype("float32")

            filtered = compute_orct2(compute_orct1(bayer, precisionFloatingPoint=self.precisionFloatingPoint), precisionFloatingPoint=self.precisionFloatingPoint)
            test_sample = filtered
            filtered = (filtered + 256) / 2

            psnr, ssim, jpeg2000CompressionRatioAfter, JpegLsCompressionRatio, compressionRatioLZWAfter, compressionRatiojpeg2000LossyAfter = self.evaluation.evaluate(filtered, bayer,
                                                                                                                                                                       sampleFunctionReverse,
                                                                                                                                                                       precisionFloatingPoint=self.precisionFloatingPoint)

            psnrs.append(psnr)
            ssims.append(ssim)
            jpeg2000CompressionRatioAfters.append(jpeg2000CompressionRatioAfter)
            JpegLsCompressionRatios.append(JpegLsCompressionRatio)
            compressionRatioLZWs.append(compressionRatioLZWAfter)
            compressionRatiojpeg2000LossyAfters.append(compressionRatiojpeg2000LossyAfter)
        pd.DataFrame({"psnr": psnrs, "ssim": ssims, "jpeg200CompressionRatio (bpp)": jpeg2000CompressionRatioAfters,
                      "JpegLsCompressionRatio": JpegLsCompressionRatios,
                      "compressionRatioLZW": compressionRatioLZWs,
                      "compressionRatiojpeg2000Lossy": compressionRatiojpeg2000LossyAfters}).to_excel("resultsShahedMethod.xlsx")
Example #2
0
    def opt_func(self, X, twoComplement):
        n_particles = X.shape[0]  # number of particles
        costs = []
        for x in X:
            x = np.reshape(x, [2, 2])
            filtered = compute_orct2(compute_orct1(twoComplement, x), x)
            filtered = (filtered + 255) / 2

            def inverseFunction(data):
                data = data.astype('float32') * 2 - 255
                data = compute_orct2inverse(data, x)
                data = compute_orct1inverse(data, x)
                return data

            sampleFunctionReverse = inverseFunction
            psnr, ssim, jpeg2000CompressionRatioAfter, jpeg2000CompressionRatioBefore = self.evaluation.evaluate(
                filtered, twoComplement, sampleFunctionReverse)
            cost = np.abs(
                (1 / psnr) * (1 / ssim) * 1 / (jpeg2000CompressionRatioAfter))
            costs.append(cost)
        return np.array(costs)
Example #3
0
    def _evaluate(self, X, out, *args, **kwargs):
        n_particles = X.shape[0]  # number of particles
        psnrs = []
        ssims = []
        jpeg200compressions = []
        for x in X:
            x = np.reshape(x, [2, 2])
            filtered = compute_orct2(compute_orct1(self.twoComplement, x), x)
            filtered = (filtered + 255) / 2

            def inverseFunction(data):
                data = data.astype('float32') * 2 - 255
                data = compute_orct2inverse(data, x)
                data = compute_orct1inverse(data, x)
                return data

            sampleFunctionReverse = inverseFunction
            try:
                psnr, ssim, jpeg2000CompressionRatioAfter, jpeg2000CompressionRatioBefore = self.evaluation.evaluate(
                    filtered,
                    self.twoComplement,
                    sampleFunctionReverse,
                    verbose=False)
            except:
                psnr = 1
                ssim = .1
                jpeg2000CompressionRatioAfter = 1
                jpeg2000CompressionRatioBefore = 1.001
            psnrs.append(1 / psnr)
            ssims.append(1 / ssim)
            CR = jpeg2000CompressionRatioAfter - jpeg2000CompressionRatioBefore
            if CR < 0:
                CR = 0.001
            jpeg200compressions.append(1 / CR)

        out["F"] = np.column_stack([psnrs, ssims, jpeg200compressions])
        out["G"] = np.column_stack(
            [-1 * np.asarray(psnrs), -1 * np.asarray(ssims)])
Example #4
0
    def test_orct12(self):
        bayer = self.datasetUtils.readCFAImages()

        bayer = bayer.astype("float64")

        orct1Res = compute_orct1(bayer, precisionFloatingPoint=self.precisionFloatingPoint)
        filtered = compute_orct2(orct1Res, precisionFloatingPoint=self.precisionFloatingPoint)
        # filtered = (filtered)/2

        filtered[filtered == 0] = -256
        filtered = (filtered + 256) / 2

        def inverseFunction(data):
            data = data.astype('float32')
            data = data * 2 - 256
            data[data == -256] = 0
            data = compute_orct2inverse(data, precisionFloatingPoint=self.precisionFloatingPoint)
            data = compute_orct1inverse(data, precisionFloatingPoint=self.precisionFloatingPoint)
            return data

        sampleFunctionReverse = inverseFunction
        self.evaluation.evaluate(filtered, bayer, sampleFunctionReverse, precisionFloatingPoint=self.precisionFloatingPoint)
        pass
Example #5
0
    def test_orct12_(self):
        pos = np.asarray([0.39182592, 0.23747258, 0.51497874, -0.08751142])
        x = np.reshape(pos, [2, 2])
        # x = np.asarray([[0.05011018, -0.53709484],
        #                 [-1.1104253, -0.30699651]])
        bayer = self.datasetUtils.readCFAImages()

        twoComplement = self.datasetUtils.twoComplementMatrix(bayer)
        twoComplement = twoComplement.astype("float32")

        filtered = compute_orct2(compute_orct1(twoComplement, x), x)

        filtered = (filtered + 255) / 2

        def inverseFunction(data):
            data = data.astype('float32') * 2 - 255
            data = compute_orct2inverse(data, x)
            data = compute_orct1inverse(data, x)
            return data

        sampleFunctionReverse = inverseFunction
        self.evaluation.evaluate(filtered, twoComplement,
                                 sampleFunctionReverse)
        pass
Example #6
0
 def test_orct2(self):
     bayer = cv2.imread("../Data/image.bmp")
     bayer = np.sum(bayer, axis=2).astype('float64')
     orct2Filtered = compute_orct2(bayer, precisionFloatingPoint=self.precisionFloatingPoint)
     pass