Is there a better way to quickly convert the content of TextureRender2D into cv::Mat for use in OpenCV?

cv::Mat srcMat;
FTextureRenderTargetResource* rtResource = renderTarget->GameThread_GetRenderTargetResource();
FReadSurfaceDataFlags readPixelFlags(RCM_UNorm);

TArray<FColor> outImg;
outImg.AddUninitialized(renderTarget->GetSurfaceWidth() * renderTarget->GetSurfaceHeight());
rtResource->ReadPixels(outImg, readPixelFlags);

srcMat = cv::Mat(resolustion.Y, resolustion.X, CV_8UC4, outImg.GetData());

I used this piece of code to implement the conversion, but the conversion efficiency of this method is very low, causing my FPS to drop by nearly 20.