Have you encountered this problem with functions running on CPUs, such as CV:: remap, which take too long to run?

Looks unexpected…

I’ve just tested the following code:

import numpy as np
import cv2

K = np.asarray([[556.3834638575809,0,955.3259939726225],[0,556.2366649196925,547.3011305411478],[0,0,1]])
D = np.asarray([[-0.05165940570900624],[0.0031093602070252167],[-0.0034036648250202746],[0.0003390345044343793]])
map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), K, (1920, 1080), cv2.CV_32FC1)


cap = cv2.VideoCapture("videotestsrc ! video/x-raw,width=320,height=240,framerate=30/1,format=YUY2 ! nvvidconv ! video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1 ! nvvidconv ! video/x-raw,format=BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink drop=1", cv2.CAP_GSTREAMER)
if not cap.isOpened():
   print('failed to open video capture')
   exit(-1)


while True:
   ret_val, img = cap.read();
   if not ret_val:
      break

   startTick = cv2.getTickCount()
   outimg = cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)
   remapTime = (cv2.getTickCount() - startTick)/cv2.getTickFrequency();
   print(remapTime)
    
   cv2.imshow('Remapped', outimg);	     	
   if cv2.waitKey(1) == ord('q'):
      break
 
cap.release()

remap takes 9 ms with my AGX Orin running R35.3 with opencv 4.6.0.
Boosting clocks with jetson_clocks script, it takes 5 ms.

For better performance, you may also see How to perform fish-eye lens distortion correction in gstreamer pipeline? (Hfov ~150) - #16 by Honey_Patouceul