mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-12-23 19:11:14 +01:00
ab50d0b006
* Add isort and ruff linter Both linters are pretty common among modern python code bases. The isort tool provides stable sorting and grouping, as well as pruning of unused imports. Ruff is a modern linter, that is very fast due to being written in rust. It can detect many common issues in a python codebase. Removes the pylint dev requirement, since ruff replaces it. * treewide: fix issues detected by ruff * treewide: fix bare except clauses * .devcontainer: Set up isort * treewide: optimize imports * treewide: apply black * treewide: make regex patterns raw strings This is necessary for escape sequences to be properly recognized.
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
from unittest import TestCase, main
|
|
|
|
import cv2
|
|
import numpy as np
|
|
|
|
from frigate.util import yuv_region_2_rgb
|
|
|
|
|
|
class TestYuvRegion2RGB(TestCase):
|
|
def setUp(self):
|
|
self.bgr_frame = np.zeros((100, 200, 3), np.uint8)
|
|
self.bgr_frame[:] = (0, 0, 255)
|
|
self.bgr_frame[5:55, 5:55] = (255, 0, 0)
|
|
# cv2.imwrite(f"bgr_frame.jpg", self.bgr_frame)
|
|
self.yuv_frame = cv2.cvtColor(self.bgr_frame, cv2.COLOR_BGR2YUV_I420)
|
|
|
|
def test_crop_yuv(self):
|
|
cropped = yuv_region_2_rgb(self.yuv_frame, (10, 10, 50, 50))
|
|
# ensure the upper left pixel is blue
|
|
assert np.all(cropped[0, 0] == [0, 0, 255])
|
|
|
|
def test_crop_yuv_out_of_bounds(self):
|
|
cropped = yuv_region_2_rgb(self.yuv_frame, (0, 0, 200, 200))
|
|
# cv2.imwrite(f"cropped.jpg", cv2.cvtColor(cropped, cv2.COLOR_RGB2BGR))
|
|
# ensure the upper left pixel is red
|
|
# the yuv conversion has some noise
|
|
assert np.all(cropped[0, 0] == [255, 1, 0])
|
|
# ensure the bottom right is black
|
|
assert np.all(cropped[199, 199] == [0, 0, 0])
|
|
|
|
def test_crop_yuv_portrait(self):
|
|
bgr_frame = np.zeros((1920, 1080, 3), np.uint8)
|
|
bgr_frame[:] = (0, 0, 255)
|
|
bgr_frame[5:55, 5:55] = (255, 0, 0)
|
|
# cv2.imwrite(f"bgr_frame.jpg", self.bgr_frame)
|
|
yuv_frame = cv2.cvtColor(bgr_frame, cv2.COLOR_BGR2YUV_I420)
|
|
|
|
yuv_region_2_rgb(yuv_frame, (0, 852, 648, 1500))
|
|
# cv2.imwrite(f"cropped.jpg", cv2.cvtColor(cropped, cv2.COLOR_RGB2BGR))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(verbosity=2)
|