12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import unittest
- import os
- import sys
- import numpy as np
- import cv2 as cv
- sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..')))
- from opencv_stitching.stitcher import Stitcher
- class TestImageComposition(unittest.TestCase):
- # visual test: look especially in the sky
- def test_exposure_compensation(self):
- img = cv.imread("s1.jpg")
- img = increase_brightness(img, value=25)
- cv.imwrite("s1_bright.jpg", img)
- stitcher = Stitcher(compensator="no", blender_type="no")
- result = stitcher.stitch(["s1_bright.jpg", "s2.jpg"])
- cv.imwrite("without_exposure_comp.jpg", result)
- stitcher = Stitcher(blender_type="no")
- result = stitcher.stitch(["s1_bright.jpg", "s2.jpg"])
- cv.imwrite("with_exposure_comp.jpg", result)
- def test_timelapse(self):
- stitcher = Stitcher(timelapse='as_is')
- _ = stitcher.stitch(["s1.jpg", "s2.jpg"])
- frame1 = cv.imread("fixed_s1.jpg")
- max_image_shape_derivation = 3
- np.testing.assert_allclose(frame1.shape[:2],
- (700, 1811),
- atol=max_image_shape_derivation)
- left = cv.cvtColor(frame1[:, :1300, ], cv.COLOR_BGR2GRAY)
- right = cv.cvtColor(frame1[:, 1300:, ], cv.COLOR_BGR2GRAY)
- self.assertGreater(cv.countNonZero(left), 800000)
- self.assertEqual(cv.countNonZero(right), 0)
- def increase_brightness(img, value=30):
- hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
- h, s, v = cv.split(hsv)
- lim = 255 - value
- v[v > lim] = 255
- v[v <= lim] += value
- final_hsv = cv.merge((h, s, v))
- img = cv.cvtColor(final_hsv, cv.COLOR_HSV2BGR)
- return img
- def starttest():
- unittest.main()
- if __name__ == "__main__":
- starttest()
|