code: def test_opencv(self, device, dtype):
      point = torch.rand(1, 2, 2, device=device, dtype=dtype)
      F_mat = torch.rand(1, 3, 3, device=device, dtype=dtype)
  
      point = torch.tensor(
          [[[0.9794, 0.7994], [0.8163, 0.8500]]],
          device=device,
          dtype=dtype,
      )
  
      F_mat = torch.tensor(
          [
              [
                  [0.1185, 0.4438, 0.9869],
                  [0.5670, 0.9447, 0.4100],
                  [0.1546, 0.2554, 0.4485],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      # generated with OpenCV using above points
      # import cv2
      # lines_expected = cv2.computeCorrespondEpilines(
      #    point.detach().numpy().reshape(-1, 1, 2), 0,
      #    F_mat.detach().numpy()[0]).transpose(1, 0, 2)
  
      lines_expected = torch.tensor(
          [
              [
                  [0.64643687, 0.7629675, 0.35658622],
                  [0.65710586, 0.7537983, 0.35616538],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      lines_est = epi.compute_correspond_epilines(point, F_mat)
      assert_close(lines_est, lines_expected, rtol=1e-4, atol=1e-4)
  
imports: from typing import Dict
  import pytest
  import test_common
  import torch
  from torch.autograd import gradcheck
  import kornia.geometry.epipolar
  import kornia.testing
  from kornia.testing import assert_close
label_desc: Use image node_id 4 for calling the TestComputeCorrespondEpilines obj's underlying member method code with example usage: obj.test_opencv(device, dtype) without return types